我已经创建了文件夹并在其中初始化了virtualenv实例。
$ mkdir myproject
$ cd myproject
$ virtualenv env
当我运行时(env)$ pip freeze
,它会按原样显示已安装的软件包。
现在,我想重命名myproject/
为project/
。
$ mv myproject/ project/
但是,当我跑步时
$ . env/bin/activate
(env)$ pip freeze
提示未安装pip。如何在不破坏环境的情况下重命名项目文件夹?
你需要调整安装以使用相对路径。virtualenv
为此提供了--relocatable
选项。从文档:
通常,环境绑定到特定路径。这意味着你无法移动环境或将其复制到另一台计算机。你可以使用以下命令修复环境以使其可重定位:
$ virtualenv-可重定位的ENV
注意: ENV是虚拟环境的名称,你必须从ENV目录外部运行它。
这将使setuptools创建的某些文件或分发文件使用相对路径,并将所有脚本更改为使用activate_this.py而不是使用Python解释器的位置来选择环境。
注意:在将任何软件包安装到环境中之后,必须运行此命令。如果使环境可重定位,然后安装新软件包,则必须再次运行virtualenv --relocatable。
警告:将环境更改为可重定位的功能不仅仅是让您移动文件夹。(请注意:从文档中复制)...可能会有副作用。
--relocatable选项当前有很多问题,不能保证在所有情况下都可以使用。在较早版本的virtualenv中,可能不建议使用该选项。另外,这不会使您的程序包跨平台。您可以移动目录,但是只能在其他类似的计算机上使用。
@TheDemz
grep -EIr '\Wold_venv_name\W' /path/to/new_venv
将帮助查找使用旧venv的所有shabang,但不是对已迁移venv的完整验证。另外,您还必须编辑virtualenvwrapper
.project
文件,其中包含依赖于virtualenv的源代码的路径,并假设您使用的是virutalenvwrapper,并且还重命名了项目目录以匹配新的virtualenv。我必须先禁用virtualenv,然后再运行它。