Python source/bin/ACTIVE激活系统解释器,而不是venv解释器

Python source/bin/ACTIVE激活系统解释器,而不是venv解释器,python,virtualenv,Python,Virtualenv,当我运行source bin/activate时,虚拟环境似乎已被激活,因为我可以看到venv。然而,当我运行哪个python时,我意识到它使用的是系统范围的解释器,即/usr/bin/python,因此安装中的任何模块都是在系统范围内安装的。我使用Pycharm创建了虚拟环境,当我通过Pycharm编写脚本时,它运行良好。但现在我需要通过终端运行它们,因此我需要虚拟环境 要创建virtualenv$virtualenv env&&source env/bin/activate,那么哪个pyth

当我运行source bin/activate时,虚拟环境似乎已被激活,因为我可以看到venv。然而,当我运行哪个python时,我意识到它使用的是系统范围的解释器,即/usr/bin/python,因此安装中的任何模块都是在系统范围内安装的。我使用Pycharm创建了虚拟环境,当我通过Pycharm编写脚本时,它运行良好。但现在我需要通过终端运行它们,因此我需要虚拟环境

要创建virtualenv$virtualenv env&&source env/bin/activate,那么哪个python将在此处显示正确的python。做这件事的时候你只需要小心。有时,您必须完全删除环境,关闭并重新启动终端,甚至源代码停用。这些都是选择

编辑:
无需停用源代码。停用已足够

您确定软件包已在系统范围内安装,还是怀疑有此问题?也就是说,如果venv是用“系统站点软件包”设置的,那么查看系统范围的软件包是有意义的,但是新的软件包仍然会安装在venvAre中。您到底是这样做的吗?open terminal,source bin/activate,[venv应该显示在用户名之前。]python file.py我很好奇,为什么哪条python会在venv处于活动状态时返回系统范围的解释器。这就是为什么我假设它的软件包已在系统范围内安装。您的问题标题为/bin/activate,这与相对路径不同。/bin/activate。你到底在跑哪一个?我猜是后者;但是,请回答您的问题以修复标题。@tripleee我正在运行source/bin/activate,我在用户名前面得到了venv,这意味着venv处于活动状态,在这种情况下,我希望哪条python返回venv解释器。否,当您运行activate时,它定义了一个shell函数deactivate,它知道如何将事情恢复到运行activate之前的状态。我将venv完全删除,然后重新创建。这次它指向正确的解释器。谢谢