为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

明月笑刀无情 2019-10-05 15:18:02
我已经创建了文件夹并在其中初始化了virtualenv实例。$ mkdir myproject$ cd myproject$ virtualenv env当我运行时(env)$ pip freeze,它将按原样显示已安装的软件包。现在我想重命名myproject/为project/。$ mv myproject/ project/但是,当我跑步时$ . env/bin/activate(env)$ pip freeze提示未安装pip。如何在不破坏环境的情况下重命名项目文件夹?
查看完整描述

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又回来了。


查看完整回答
反对 回复 2019-10-05
?
一只名叫tom的猫

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


查看完整回答
反对 回复 2019-10-05
  • 3 回答
  • 0 关注
  • 1475 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信