如何迁移虚拟环境

Stu*_*Cat 6 virtualenv

我有一个相对较大的项目,有很多依赖项,我想分发这个项目,但是安装这些依赖项有点痛苦,并且需要很长时间(pip install 需要相当长的时间)。所以我想知道是否可以将整个 virtualenv 迁移到另一台机器并让它运行。

我尝试复制整个 virtualenv,但是每当我尝试运行某些东西时,这个 virtualenv 仍然使用我的旧机器的路径。例如当我跑步时

source activate
pserve development.ini 
Run Code Online (Sandbox Code Playgroud)

我明白了

bash: ../bin/pserve: /home/sshum/backend/bin/python: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我的旧目录。那么有没有办法让 virtualenv 用新路径重新配置这个路径呢?

sed -i 's/sshum/dev1/g' *在 bin 目录中尝试了一下,它解决了这个问题。然而,我现在遇到了一个不同的问题,我的猜测是这个 sed 改变了一些东西。

我已确认我已libssl-dev安装,但当我运行时,python我得到:

E: Unable to locate package libssl.so.1.0.0
E: Couldn't find any package by regex 'libssl.so.1.0.0'
Run Code Online (Sandbox Code Playgroud)

但当我跑步时aptitude search libssl我看到:

i A libssl-dev        - SSL development libraries, header files and documentation
Run Code Online (Sandbox Code Playgroud)

我也尝试过virtualenv --relocatable backend但没有去。

小智 0

当您创建新的 virtualenv 时,它会针对运行它的计算机进行配置。我什至认为它是针对创建它的特定目录进行配置的。所以我认为在移动代码时应该始终创建一个新的 virtualenv。可能有效的方法是将 lib/Pythonx.x/site-packages 复制到 virtualenv 目录中,但我认为这不是一个特别好的解决方案。

更好的解决方案可能是使用 pip 下载缓存。这至少会加快 pip install 的下载部分。看一下这个线程:How do I install from a local cache with pip?