需要改变virtualenv的哪些部分才能重新定位?

jmi*_*ite 14 python windows oop distutils virtualenv

所以,我有一个Python程序,有一些荒谬的插件/包.我希望能够在其virtualenv中分发程序,以便捆绑包.但是,该程序适用于Windows,并且在Windows上不支持virtualenvs的"可重定位"功能(以及仍在进行实验).

所以,我正在寻找编写脚本,或者只是编写指令来手动更改绝对路径名以重新定位virtualenv.

我的问题是,如果有人知道我必须在virtualenv中寻找绝对路径名称.我是Python包装的新手.activate.bat脚本包含绝对路径名,但是单个包是否将绝对路径名硬编码到其安装中?

Make Environments Relocatable一节描述了为什么不能简单地移动virtualenv,而是列出包含绝对路径名的地方.

Dan*_*man 15

而不是尝试手动执行此操作,您最好使用freeze选项pip来创建需求文件.您现在可以使用单个命令重建整个virtualenv.

在旧的virtualenv:

pip freeze > stable-req.txt
Run Code Online (Sandbox Code Playgroud)

在新的一个:

pip install -r stable-req.txt
Run Code Online (Sandbox Code Playgroud)


Kal*_*n02 6

对于虚拟环境目录,请{ENV}按照下列步骤操作

  1. $ virtualenv --relocatable {ENV}
  2. 编辑{ENV}/bin/activate,使用您所选择的VIM或编辑
  3. 编辑VIRTUAL_ENV(约42行!)以匹配新目录位置

因此,如果您要编写脚本,可以导出VIRTUAL_ENVshell变量或动态执行/ bin/activate编辑.

这就是我设置我的方式.

# env/bin/activate
BIN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# virtual env is at ./env
ENV_DIR=`dirname $BIN_DIR`
VIRTUAL_ENV=$ENV_DIR
export VIRTUAL_ENV