"venv activate"不会改变我的 Python 路径



我创建了一个虚拟环境;比方说test_venv,然后我激活它。一切都成功了。

然而,Python解释器的路径并没有改变。我在下面说明了情况。

为了澄清,python路径应该是~/Desktop/test_venv/bin/python

>>> python3 -m venv Desktop/test_venv
>>> source Desktop/test_venv/bin/activate
(test_venv) >>> which python
/usr/bin/python 

请务必阅读注释#2。


如果您不想创建新的虚拟环境,这就是您应该做的

venv/bin文件夹中,有3个文件明确存储您的供应商路径如果路径错误,它们会采用正常的python路径,因此您应该将那里的路径更改为新路径。

更改:activate.fish中的set -gx VIRTUAL_ENV "what/ever/path/you/need"

更改:activate中的VIRTUAL_ENV="what/ever/path/you/need"

更改:activate.csh中的setenv VIRTUAL_ENV "what/ever/path/you/need"

注1:
路径是到/venv而不是到/venv/bin

注意#2:
如果您访问了此页面,则表示您可能没有遵循Python的项目结构最佳实践。如果是的话,创建新虚拟环境的过程只是一个命令行的问题。

请考虑使用以下方法之一:

  • requirements.txt添加到您的项目中-不建议使用
  • 为实际项目实现setup.py脚本
  • 使用像Poetry-这样的工具,就像后者一样,尽管用户更友好

多亏了Khalaimov Dmitrii,我没想到这是因为我移动了文件夹。

它不是专门针对您的问题的答案,但它与问题的标题相对应。我也遇到过类似的问题,在网上找不到解决办法。也许有人利用了我的经验。

我为我的python项目创建了虚拟环境。一段时间后,我的python解释器在虚拟环境激活后也停止了更改。与你描述的相似。

我的问题是不久前我将项目文件夹移到了另一个目录如果我将文件夹返回到其原始目录,那么一切都会重新开始工作。

有以下问题解决方案。保存所有软件包要求(例如,使用"pip-freeze"或"poetry"(并删除"venv"文件夹(或者在您的情况下删除"test_venv"文件夹(。之后,我们再次创建虚拟环境,激活它并安装所有要求。

这种方法解决了我的问题。

检查/venu/bin/activate中的VIRTUAL_ENV值。如果重命名或移动了项目目录,则该值可能仍然是旧值。如果您使用PyCharm重命名项目,PyCharm不会更新您的venv文件。如果路径错误,您可以删除venv并重新创建一个新的venv,或者尝试关于在哪里更改它的答案。

最新更新