我有一个相对较大的项目,有很多依赖项,我想分发这个项目,但安装这些依赖项有点痛苦,需要很长时间(pip安装需要相当长的时间)。所以我想知道是否有可能将整个virtualenv迁移到另一台机器并使其运行。
我尝试复制整个virtualenv,但每当我尝试运行某些东西时,这个virtualenv仍然使用我的旧机器的路径。例如,当我运行
source activate
pserve development.ini
我得到了
bash: ../bin/pserve: /home/sshum/backend/bin/python: bad interpreter: No such file or directory
这是我的旧目录。那么有没有办法让virtualenv用新路径重新配置这条路径?
编辑:所以我在bin目录中尝试了sed -i 's/sshum/dev1/g' *
,它解决了这个问题。但是,我现在遇到了一个不同的问题,我的猜测是这个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'
但是当我运行aptitude search libssl
时,我看到了:
i A libssl-dev - SSL development libraries, header files and documentation
这里有点困惑。
EDIT2:我也试过virtualenv --relocatable backend
但是没有去:(这让我非常难过。
答案 0 :(得分:0)
当您创建新的virtualenv时,它会针对运行它的计算机进行配置。我甚至认为它是为它创建的特定目录配置的。所以我认为你应该在移动代码时创建一个新的virtualenv。可能有用的是复制virtualenv目录中的lib / Pythonx.x / site-packages,但我认为这不是一个特别好的解决方案。
使用pip下载缓存可能是更好的解决方案。这至少会加速pip install的下载部分。看一下这个主题:How do I install from a local cache with pip?
答案 1 :(得分:0)
干净的方式似乎是virtualenv --relocatable
。
或者,您可以通过修改VIRTUAL_ENV
中的bin/activate
路径手动执行此操作以反映更改。如果您选择这样做,则还必须编辑bin/pserve
的第一行(#),表示解释器路径。
答案 2 :(得分:0)