我想要一个模块的两个版本,一个版本在 pip 中(例如:新版本),另一个版本(例如:旧版本)在 pipenv 中,但是当我使用 pipenv 安装包时,它也适用于pip,我不知道如何在 pycahrm IDE 中使用 pipenv 创建一个不同的环境,包不会安装在 pip 中。
并且每次我使用 pipenv 执行命令时,pycharm 都会通知我此代码:
友情提示:Pipenv 发现自己在虚拟环境中运行,因此它将自动使用该环境,而不是为任何项目创建自己的环境。您可以设置 PIPEN V_IGNORE_VIRTUALENVS=1 以强制 pipenv 忽略该环境并创建自己的环境。您可以设置 PIPENV_VERBOSITY=-1 来抑制此警告。
如何将 pipenv_ignore_virtualenvs 设置为 1?
甚至可以一次使用两种不同的环境吗?
回答1
基本上,您不能,因为它不依赖于应安装软件包的 pip(或 pipenv 或 poetry)。 Python 将根据 sys.prefix
或 sys.prefix_exec
的 values 将软件包安装到配置为执行的任何位置,如 https://docs.python.org/3/library/venv.html#venv-def 所述。
如果您想管理两个不同版本的依赖项,我能想到的一件事是拥有两个独立的虚拟环境,每个环境都有自己的依赖项。然后,您可以随意在环境之间切换。但是你不能在同一个环境中安装同一个包的两个版本(除非你修改它的源代码并在本地安装它),并且在 pip 或任何依赖项安装工具之间进行更改肯定对你没有帮助。
https://codefather.tech/blog/how-python-virtualenv-works/是一篇很好的文章,它解释了激活虚拟环境时会发生什么以及为什么它不依赖于安装它们的 pip