当我第一次使用pipenv install package
将软件包安装到虚拟环境中,然后尝试打开一个子shell在该环境中使用pipenv shell
操作时,我收到以下消息:
“UNKNOWN_VIRTUAL_ENVIRONMENT的Shell已激活。未采取措施避免嵌套环境。”
但是,which python
返回系统python的文件路径,这表明实际上虚拟环境没有激活。ctr+D
并调用pipenv shell
,最后在虚拟环境中打开一个子shell。有人能给我解释一下这是怎么回事吗?老实说,我真的很困惑。
3条答案
按热度按时间wmomyfyw1#
只要cd到文件夹有你的venv(.venv,Pipfile,Pipfile.锁)并运行退出。它将退出文件夹,现在你可以再次cd到同一个文件夹,并使用pipenv shell。会成功的
0x6upsns2#
使用
exit
而不是deactivate
退出shell。正如here解释的那样,“deactivate
将使pipenv处于混乱状态,因为您仍然处于生成的shell示例中,而不是处于激活的virtualenv中。”正确退出后,可以导航回目录并使用
pipenv shell
raogr8fs3#
我尝试了这里发布的
exit
和deactivate
解决方案,但仍然得到消息:这是因为在我的Windows系统上,我使用PowerShell和
$PROFILE
中的代码来美化控制台中的pipenv/virtualenv环境名称,如下所述:这需要将环境变量
PIPENV_SHELL
设置为powershell
。一旦我删除了这个环境变量,从而停用了代码,我终于可以从虚拟环境中调用exit
了。我将环境变量
PIPENV_SHELL
设置回powershell
,并且没有进一步的问题。