所以,我已经有了一个可笑的一些插件/包的Python程序。 我希望能够在其virtualenv分发该程序,以便捆绑包。 但是,该程序是针对Windows的,而virtualenvs的“可重定位”function在Windows上是不受支持的(并且仍然是实验性的)。
所以,我正在考虑编写一个脚本,或者只是编写指令手动更改绝对path名称来重新定位virtualenv。
我的问题是,如果有人知道我必须在virtualenv中查找绝对path名。 我很新的Python包装。 activate.bat脚本包含绝对path名称,但是单个软件包的绝对path名是否被硬编码到其安装中?
“ 使环境可重定位 ”一节介绍了为什么不能简单地移动virtualenv,但不列出包含绝对path名的地方。
而不是尝试手动执行此操作,则最好使用freeze
选项来创建需求文件。 你现在可以用一个命令重建你的整个虚拟环境。
在旧的virtualenv:
pip freeze > stable-req.txt
在新的一个:
pip install -r stable-req.txt
对于您的虚拟环境目录{ENV}
按照下列步骤操作
$ virtualenv --relocatable {ENV}
{ENV}/bin/activate
,使用您选择的vim或编辑器 VIRTUAL_ENV
(在第42行左右)以匹配新的目录位置 所以如果你正在编写一个脚本,你可以导出VIRTUAL_ENV
shell变量或者动态地执行/ bin / activate上的编辑。
这是我设置我的。
#env / bin / activate BIN_DIR =“$(cd”$(dirname“$ {BASH_SOURCE [0]}”)“&& pwd)” #虚拟env在./env ENV_DIR =`dirname $ BIN_DIR` VIRTUAL_ENV = $ ENV_DIR 导出VIRTUAL_ENV
virtualenv-tools是一个脚本,用于在移动之后更新现有的virtualenv的位置。 虽然它在Windows上没有帮助,但对其他人可能是有用的。
它更新:
bin/
目录下的脚本行 local/
目录中的符号链接