3 回答

TA贡献2016条经验 获得超9个赞
我相信“知道为什么”比“知道如何”更重要。因此,这是解决此问题的另一种方法。
运行时. 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又回来了。

TA贡献1906条经验 获得超3个赞
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
添加回答
举报