猿问

重命名virtualenv文件夹而不破坏它

我已经创建了文件夹并在其中初始化了virtualenv实例。


$ mkdir myproject

$ cd myproject

$ virtualenv env

当我运行时(env)$ pip freeze,它将按原样显示已安装的软件包。


现在我想重命名myproject/为project/。


$ mv myproject/ project/

但是,当我跑步时


$ . env/bin/activate

(env)$ pip freeze

提示未安装pip。如何在不破坏环境的情况下重命名项目文件夹?


明月笑刀无情
浏览 1476回答 3
3回答

慕沐林林

我相信“知道为什么”比“知道如何”更重要。因此,这是解决此问题的另一种方法。运行时. env/bin/activate,它实际上执行以下命令(/tmp例如,使用):VIRTUAL_ENV="/tmp/myproject/env"export VIRTUAL_ENV但是,您刚刚将重命名myproject为project,因此该命令无法执行。这就是为什么这样说的原因pip is not installed,因为您尚未安装pip在系统全局环境中,并且您的virtualenv pip来源不正确。如果要手动修复此问题,请采用以下方法:使用您喜欢的Vim编辑器,/tmp/project/env/bin/activate通常在第42行进行修改:VIRTUAL_ENV='/tmp/myproject/env' => VIRTUAL_ENV='/tmp/project/env'/tmp/project/env/bin/pip在第1行中进行修改:#!/tmp/myproject/env/bin/python => #!/tmp/project/env/bin/python之后,env再次激活您的虚拟环境,您将看到自己pip又回来了。

一只名叫tom的猫

Virtualenvs很棒,因为它们易于制作和切换。它们可以防止您陷入单一配置中。如果您知道项目要求或可以得到它们,请新建一个virtualenv:建立requirements.txt档案(env)$ pip freeze > requirements.txt如果您无法创建requirements.txt文件,请env/lib/pythonX.X/site-packages在删除原始文件之前进行检查env。删除现有的 (env)deactivate && rm -rf env创建一个新的virtualenv,激活它并安装需求virtualenv env && . env/bin/activate && pip install -r requirements.txt或者,使用virtualenvwrapper使事情变得简单一些,因为所有virtualenv都保存在集中位置$(old-venv) pip freeze > temp-reqs.txt$(old-venv) deactivate$ mkvirtualenv new-venv$(new-venv) pip install -r temp-reqs.txt$(new-venv) rmvirtualenv old-venv
随时随地看视频慕课网APP

相关分类

Python
我要回答