如果我的虚拟环境没有激活,有没有办法在PowerShell中获得警告?

vohkndzv  于 5个月前  发布在  Shell
关注(0)|答案(2)|浏览(71)

如果我想在没有虚拟环境激活的情况下使用pip,有没有什么工具可以警告我?我的全局python中唯一安装的东西是pipx,我想保持这种方式。
我在Windows终端应用程序中使用PowerShell,所以它需要与之兼容。

57hvy0tb

57hvy0tb1#

不是真的没有,但我也不太熟悉PowerShell.任何终端应用程序将显示某种提示它当前的环境.如下图所示:
https://medium.com/@astontechnologies/how-to-setup-a-virtual-development-environment-for-python-with-windows-powershell-4cd34b2f9f9b
你可以做的是为PowerShell编写一个启动脚本,在启动时运行一个命令来激活特定的环境,如果适用的话。如果没有,例如,你有几个环境,你必须手动完成或编写一些精心设计的脚本,根据当前工作目录激活给定的venv。
无论如何,如果你忘记了,有什么问题吗?我的意思是,这经常发生在我们身上,但是卸载一个软件包并不需要太多的努力。

qojgxg4l

qojgxg4l2#

PEP 668解决了安装在隐式全局上下文中的依赖项之间的冲突问题,建议“Python特定的包管理工具默认情况下不应将包安装或删除到解释器的全局上下文中,而应引导最终用户使用虚拟环境”。
PEP还概述了如何将Python解释器标记为外部管理;我已经在docker中测试了以下过程并验证了它的工作原理。
通过运行(在python中)确定解释器的stdlib的安装位置

import sysconfig
sysconfig.get_path("stdlib", sysconfig.get_default_scheme())

字符串
在python外部,导航到stdlib路径并创建一个名为EXTERNALLY-MANAGED的文件,其中包含以下文本:

[externally-managed]
Error=Runnning outside of virtualenv


如果没有这个文件,您可以在全局上下文中执行pip install

error: externally-managed-environment

× This environment is externally managed
╰─> Runnning outside of virtualenv

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.


当然,这只是对你当前python解释器/版本的修复。如果你想要一个更永久的修复,你需要麻烦维护windows python的人采用PEP 668。

相关问题