我可以使用conda创建一个Julia 1.4.2虚拟环境吗?

4

我现在正在使用Julia语言,但是一些旧版本的代码已经部署在了Julia 1.4.2上。现在我想重新检查这些代码,但又不想在Julia 1.6.3(通常使用的版本)和1.4.2之间进行切换。因此,我想使用conda创建一个虚拟环境,但是现在似乎conda中没有可用的Julia 1.4.2版本。有什么建议吗?


1
你可以轻松地同时拥有多个版本的julia,至少在Linux中,你可以使用符号链接将它们连接起来,比如链接到julia1_4或julia1_6。也就是说,除了一些使用了某些julia内部机制的特殊软件包之外,在julia 1.4.2上运行正常的所有内容也应该可以在julia 1.6.3上运行,所以没有必要使用旧版本。 - Antonello
谢谢,但实际上我一开始就尝试坚持使用Julia 1.6,无论我如何更改依赖包的版本,仍然出现了问题。 - Betristor
1个回答

0

如果您想同时运行多个Julia版本,基本上需要确保它们使用不同的软件包存储库位置(称为depot path)。

默认情况下,用于depot path的文件夹是~/.julia(或Windows上的%HOMEPATH%\.julia)。如果您开始安装多个Julia版本,则很有可能最终会出现损坏的软件包存储库。

因此,您需要设置JULIA_DEPOT_PATH系统变量-对于每个Julia版本都要设置不同的变量(请参见https://docs.julialang.org/en/v1/manual/environment-variables/)。

例如,在我的计算机上,我有Julia 1.6.3和Julia1.7.0rc2,在启动任何一个之前,我运行以下命令(这次是Windows语法):

set JULIA_DEPOT_PATH=c:\JuliaPkg\Julia1.6.3

或者在Linux上:

export JULIA_DEPOT_PATH=/home/ubuntu/Julia1.6.3/

这使我能够将我的软件包配置保持分离。


我完全不相信这是必要的。Julia默认环境已经按照Julia版本进行了设置,例如 v1.5,因此如果多个版本使用相同的依赖路径,它们不会发生冲突。我多年来一直通过符号链接可执行文件成功地使用不同的版本。 - Antonello
文件夹 JULIA_DEPOT_PATH\environments 确实有版本文件夹。然而,JULIA_DEPOT_PATH 包含的远不止这些,其他文件名会发生重叠 - 可以安装两个具有不同 JULIA_DEPOT_PATH 的 Julia 并自行检查!当它们重叠时,可能会工作,也可能不会 - 但肯定不是一个好的设计,让一个 Julia 包安装随机覆盖另一个安装的文件。 - Przemyslaw Szufel
我曾经破坏过注册表,这困扰了我一段时间。我尝试首先手动在.julia/environment下创建v1.4文件夹,然后启动julia 1.4.2,因为julia 1.4.2本身没有为我做这件事。除了在vscode中切换环境有点麻烦以外,没有出现任何问题。感谢@Przemyslaw Szufel的建议,我会在之后尝试这个方法。 - Betristor
重点是在.julia文件夹中还有其他几个文件夹,例如.julia/conda,大小为数GB。这些文件夹的文件名有所重叠。你可能仍然很“幸运”,一切都能正常运作。但我个人不喜欢我的软件配置依赖于“幸运”。 - Przemyslaw Szufel
2
不需要为不同的Julia版本设置唯一的仓库路径。系统已经设置好了,不需要这样做,否则会导致下载多个相同的软件包和工件,浪费时间。如果有任何问题,请报告给问题跟踪器。 - Kristoffer Carlsson
@KristofferCarlsson 我学会了在我的软件包仓库多个Julia实例之间使用单独的JULIA_DEPOT_PATH,因为共享同一个depot时我的软件包仓库崩溃了好几次。不过这是在早期的Julia版本中出现的问题 - 很高兴听到这个问题在此期间已经得到修复。那时每一次我都必须删除depot(也就是.julia文件夹)并从头开始重新安装所有软件包。 - Przemyslaw Szufel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接