注:这个问题指的是朱莉娅v1.5。当然,在任何时候,最好的答案也应该回答最新版本的问题。
朱莉娅安装提供了默认环境(例如,@v1.5)。在某个工作目录中运行Julia时,可以使用julia>] activate .创建新环境或激活当前环境(以防当前文件夹包含Project.toml等文件)。
当朱莉娅代码在特定环境中运行时,环境定义了哪些包(或模块)可以通过using或import导入。但是,可以始终使用默认环境中安装的包。我还没有在文档中看到过这个事实(尽管可能会提到),并且在花了一些时间跟踪缺失的导入之后,我学会了这一“艰难的方法”。
这有好处也有缺点:有时人们觉得需要使用不属于项目的包,例如用于分析或调试。如果它们安装在默认环境中,则可以在不污染项目依赖性的情况下使用它们。另一方面,可能会发生这样的情况:虽然项目使用包,但却忘记了将某个包add到项目环境中。在这种情况下,其他用户不能仅从Project.toml和Manifest.toml复制所需的环境。(在Julia启动时运行的Julia脚本中添加一些不平凡的代码也有这种缺点)。
在我看来,有几种处理这个问题的方法:
reproducibility
我的问题是:还有更多(更好的)吗?处理这个问题的方法?朱莉娅的习惯选择是哪一种?
发布于 2021-03-25 00:51:22
LOAD_PATH负责确定由哪些环境组成的有效环境。默认情况下,它包括活动环境、默认环境和stdlib。
当由Pkg.test (或等效的pkg> test)激活时,测试将使用仅由所测试的项目组成的无标记加载路径运行。因此,测试只能访问由相应的Project.toml和Manifest.toml文件定义的依赖关系图。
在默认环境中包含实用程序(例如分析工具)似乎是一种标准做法。
如果不喜欢这种行为,则可以在启动文件中修改LOAD_PATH,使其仅包括活动项目。
https://stackoverflow.com/questions/66790024
复制相似问题