【问题标题】:Clone a virtualenv without use pip freeze在不使用 pip freeze 的情况下克隆 virtualenv
【发布时间】:2017-08-17 16:15:47
【问题描述】:
我正在使用一个没有下载某些模块的虚拟环境,所以执行pip freeze > requirements.txt 然后pip install -r requirements.txt 将不起作用。有办法避免这种情况吗??
之后,我必须将这个 virtualenv 复制到另一台机器中,所以也许有一些 PATH 需要更改或其他,对吧?
【问题讨论】:
标签:
python
linux
python-3.x
pip
virtualenv
【解决方案1】:
您可以使用 git 等源代码控制工具、安装脚本或两者的组合。将安装脚本保存在您的顶级目录中并在新机器上运行它。使用curl 将您需要的内容下载到正确的目录中。
【解决方案2】:
假设你想安装最新的 Django。
- 从 pypi.python.org 本地下载 .gz 文件并解压缩。您应该可以看到 setup.py 文件。
- 现在激活您的 virtualenv 并转到您看到 setup.py 的 Django 文件夹并输入命令
python setup.py install。
- 或者在你的 virtualenv 中获取 python 二进制/可执行文件的完整路径,然后转到你有 setup.py 的文件夹并执行
your-complete-path/python setup.py install
【解决方案3】:
一个有助于复制/移动 virtualenvs 的工具是virtualenv tools。既然你已经标记了 [python-3.x],这里有一个 python3.x 兼容的 fork:https://github.com/Yelp/virtualenv-tools
在移动/复制 virtualenv 时,有几个文件包含有关原始路径的信息并且需要更新(尤其是脚本的 shebangs、pyc 文件等)
如下调用 virtualenv 工具:
virtualenv venv
venv/bin/pip install ...
venv/bin/python -m virtualenv_tools --update-path $REMOTE_PATH venv
# Then you can package up `venv` and ship it to other boxes, and put it at /$REMOTE_PATH on disk
免责声明:我部分维护 3.x 分支