首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >环境从默认环境继承包。

环境从默认环境继承包。
EN

Stack Overflow用户
提问于 2021-03-24 21:59:36
回答 1查看 285关注 0票数 6

注:这个问题指的是朱莉娅v1.5。当然,在任何时候,最好的答案也应该回答最新版本的问题。

朱莉娅安装提供了默认环境(例如,@v1.5)。在某个工作目录中运行Julia时,可以使用julia>] activate .创建新环境或激活当前环境(以防当前文件夹包含Project.toml等文件)。

当朱莉娅代码在特定环境中运行时,环境定义了哪些包(或模块)可以通过usingimport导入。但是,可以始终使用默认环境中安装的包。我还没有在文档中看到过这个事实(尽管可能会提到),并且在花了一些时间跟踪缺失的导入之后,我学会了这一“艰难的方法”。

这有好处也有缺点:有时人们觉得需要使用不属于项目的包,例如用于分析或调试。如果它们安装在默认环境中,则可以在不污染项目依赖性的情况下使用它们。另一方面,可能会发生这样的情况:虽然项目使用包,但却忘记了将某个包add到项目环境中。在这种情况下,其他用户不能仅从Project.tomlManifest.toml复制所需的环境。(在Julia启动时运行的Julia脚本中添加一些不平凡的代码也有这种缺点)。

在我看来,有几种处理这个问题的方法:

reproducibility

  • Never

  • 可以随意使用从默认环境继承的包(以及朱莉娅启动时的脚本),并对进行广泛的单元测试,将包添加到默认环境中。注意不要在Julia startup.
  1. Just上导入脚本中的包,无论实际存储库代码是否使用它们,都要在Project/Manifest文件中包含您想要的所有包。

我的问题是:还有更多(更好的)吗?处理这个问题的方法?朱莉娅的习惯选择是哪一种?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-25 00:51:22

LOAD_PATH负责确定由哪些环境组成的有效环境。默认情况下,它包括活动环境、默认环境和stdlib。

当由Pkg.test (或等效的pkg> test)激活时,测试将使用仅由所测试的项目组成的无标记加载路径运行。因此,测试只能访问由相应的Project.tomlManifest.toml文件定义的依赖关系图。

在默认环境中包含实用程序(例如分析工具)似乎是一种标准做法。

如果不喜欢这种行为,则可以在启动文件中修改LOAD_PATH,使其仅包括活动项目。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66790024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档