Julia 环境从默认环境继承包
注:此问题涉及Julia v1.5。当然,在任何时候,答案最好也能回答最新版本的问题 Julia安装提供了一个默认环境(例如称为Julia 环境从默认环境继承包,julia,dependency-management,virtual-environment,Julia,Dependency Management,Virtual Environment,注:此问题涉及Julia v1.5。当然,在任何时候,答案最好也能回答最新版本的问题 Julia安装提供了一个默认环境(例如称为@v1.5)。在某个工作目录中运行Julia时,可以使用Julia>]activate.创建新环境或激活当前环境(如果当前文件夹包含Project.toml等文件) 当Julia code在某个环境中运行时,该环境定义了哪些包(或模块)可以通过使用或导入。但是,始终可以使用默认环境中安装的软件包。我还没有看到文档中提到的这一事实(尽管很可能提到过),在花了一些时间追踪丢
@v1.5
)。在某个工作目录中运行Julia时,可以使用Julia>]activate.
创建新环境或激活当前环境(如果当前文件夹包含Project.toml
等文件)
当Julia code在某个环境中运行时,该环境定义了哪些包(或模块)可以通过使用
或导入
。但是,始终可以使用默认环境中安装的软件包。我还没有看到文档中提到的这一事实(尽管很可能提到过),在花了一些时间追踪丢失的进口后,我了解到了这一点
这有好的一面也有坏的一面:有时人们会觉得需要使用并非项目真正组成部分的包,例如,用于分析或调试。如果这些都安装在默认环境中,则可以在不污染项目依赖关系的情况下使用它们。另一方面,尽管项目使用某个包,但可能会忘记将某个包添加到项目环境中。在这种情况下,其他用户无法仅从Project.toml
和Manifest.toml
复制必要的环境。(在Julia启动时运行的Julia脚本中添加非平凡的代码也可能有这种缺点)
在我看来,处理这个问题有几种方法:
Pkg.test
(或等效的Pkg>test
)激活时,测试将在无菌加载路径下运行,该路径仅包含正在测试的项目。因此,测试只能访问由相应的Project.toml
和Manifest.toml
文件定义的依赖关系图
在默认环境中包含实用程序(如分析工具)似乎是一种标准做法
如果不喜欢此行为,可以在启动文件中修改LOAD\u PATH
,使其仅包含活动项目