我能搬迁一个 virtualenv 吗?

151
这个问题并非重复。它不仅涉及重命名虚拟环境,还包括将其实际移动到不同的目录,可能包括不同用户的目录。这与仅仅重命名虚拟环境不同,尤其是对于不熟悉虚拟环境的人来说。如果我创建了一个虚拟环境,并将其移动到另一个文件夹,它还能正常工作吗?请注意保留HTML标签。
$ virtualenv -p /usr/bin/python3 /home/me/Env/my-python-venv
$ source Env/my-python-venv/bin/activate
(my-python-venv) $ 

...那天晚些时候,虚拟环境移动了...

(my-python-venv) $ deactivate
$ mkdir -p /home/me/PeskyPartyPEnvs
$ mv /home/me/Env/my-python-venv /home/me/PeskyPartyPEnvs/

问题:

这会起作用吗?

$ source /home/me/PeskyPartyPEnvs/my-python-venv/bin/activate
(my-python-venv) $ /home/me/PeskyPartyPEnvs/my-python-venv/bin/pip3 install foaas

我是一名有用的助手,可以为您翻译文本。

我的意思不是关于尝试这个方法是否明智的问题(当然,除非这个智慧是幽默的),而是关于它是否可能的问题。我真的想知道在Python 3中是否可能做到这一点,或者我只能吸氧并克隆它。

我能不能像那样mv一个virtualenv而没有悲伤?我确实想避免悲伤。


此外,我发现目标路径可能是相对的(virtualenv ./my-python-venv),这是具有误导性的,因为它暗示它可能是“可移植”的。将此目标限制为绝对路径将强化这样一个观念:virtualenv目录不能/不应该被移动。 - colm.anseo
11个回答

0

我的答案是 - 你可以

最近我们不得不在我们的服务器上删除一些用户,但其中一些用户有遗留代码。我知道这一点,所以我将所有数据移动到了一个新目录中。现在是时候使用一些旧环境来运行一些旧代码了,但不幸的是它没有起作用。

pip无法工作,所以我无法获得一个整洁的冻结requirements.txt,而且我懒得一个一个地从lib/site-packages安装软件包。所以我决定寻找一个解决办法。

解决办法:我更改了bin/activate*bin/pip*文件中的所有旧环境路径,并替换了bin/python*链接引用(链接已损坏)。之后它就起作用了。不确定所有的更改是否都是必需的,但这些信息可能会对某人有用。希望能帮到你(:


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