我已经创建了文件夹并在其中初始化了一个virtualenv实例。
$ mkdir myproject
$ cd myproject
$ virtualenv env
当我运行(env)$ pip freeze
时,它会按原样显示已安装的包。
现在我想把myproject/
重命名为project/
。
$ mv myproject/ project/
但是,现在当我跑
$ . env/bin/activate
(env)$ pip freeze
上面说没有安装pip。如何在不破坏环境的情况下重命名项目文件夹?
Tags:
我相信“知道为什么”比“知道如何”更重要。所以,这里有另一种方法来解决这个问题。
运行
. env/bin/activate
时,它实际上执行以下命令(例如使用/tmp
):但是,您刚刚将
myproject
重命名为project
,因此该命令无法执行。 这就是为什么它说pip is not installed
,因为您没有在系统全局环境中安装pip
,而且您的virtualenvpip
的来源不正确。如果要手动修复此问题,请执行以下操作:
使用您最喜欢的编辑器(如Vim),通常在第42行中修改
/tmp/project/env/bin/activate
:VIRTUAL_ENV='/tmp/myproject/env'
=>;VIRTUAL_ENV='/tmp/project/env'
修改第1行中的
/tmp/project/env/bin/pip
:#!/tmp/myproject/env/bin/python
=>;#!/tmp/project/env/bin/python
之后,再次激活虚拟环境
env
,您将看到pip
再次返回。注:为@jb。指出,此解决方案仅适用于轻松(重新)创建的
virtualenv
s。如果环境需要几个小时来安装此解决方案,则不建议virtualenv很好,因为它们很容易制作和切换;它们可以防止您被锁定到单个配置中。如果您知道项目需求,或者可以获得它们,请创建一个新的
virtualenv
:创建一个
requirements.txt
文件(env)$ pip freeze > requirements.txt
requirements.txt
文件,请在删除原始env
之前检查env/lib/pythonX.X/site-packages
。删除现有的
(env)
deactivate && rm -rf env
创建一个新的
virtualenv
,激活它,然后安装需求virtualenv env && . env/bin/activate && pip install -r requirements.txt
或者,使用virtualenvwrapper使事情变得简单一些,因为所有virtualenv都保存在一个集中的位置
您需要调整安装以使用相对路径。
virtualenv
提供了--relocatable
选项。来自the docs:相关问题 更多 >
编程相关推荐