【问题标题】:Activated virtual environment using incorrect Python executable使用不正确的 Python 可执行文件激活虚拟环境
【发布时间】:2020-01-21 15:15:28
【问题描述】:

我正在通过 PyCharm 开展一个项目。当我开始项目时,项目解释器是一个新创建的 virtualenv,位于我的项目文件夹 /path/to/project_folder/venv 并使用基本解释器 /usr/bin/python3.6

在 PyCharm 中工作时,Python 控制台似乎正在使用正确的 venv/Python 可执行文件等。运行 os.system("which python") 返回 /usr/bin/python

接下来,我通过我的终端(在 Ubuntu 18.04 上)使用命令 source /path/to/project_folder/venv/bin/activate 激活此 venv,该命令运行良好,并显示它已使用 (venv) 激活。但是,如果我运行which python,它会返回/home/user/anaconda3/bin/python

为什么会这样?如何通过我的 Ubuntu 终端从 PyCharm 控制台访问相同的 Python 解释器?

【问题讨论】:

  • /usr/bin/python 可能是指向 /usr/bin/python3.6 的符号链接,这意味着在您的 pycharm 环境中,您实际上使用的是系统 python 而不是 virtualenv。 venv 的解释器应位于 /path/to/project_folder/venv/Scripts 中。当您手动采购 venv 时,您会退回到您的 anaconda3 解释器,在我看来,您的机器上安装了几个解释器,这会导致问题。
  • 感谢您的评论。我认为 venv 的解释器位于 /path/to/project_folder/venv/bin/python,即使运行 os.system("which python") 返回 /usr/bin/python。我这么认为的原因是因为如果我激活 venv 然后,我没有运行python(这让我进入 anaconda 解释器),而是运行/path/to/project_folder/venv/bin/python,我输入了一个与 PyCharm 相同的解释器,看起来.我能够导入所有属于 venv 的站点包等。我不知道为什么运行 python 不会直接将我带到 venv 解释器...

标签: python linux pycharm virtualenv


【解决方案1】:

在一个特定的项目中我也遇到了同样的情况。

症状:

  • 没有从 venv 获取的可执行文件;即:
  • which python3 来自 bash 不是来自 venv
  • Python 包在 venv 中不起作用

原因:

  • 您重命名了项目文件夹
  • 虚拟环境 PATH 保留 venv 的旧路径
  • 静默失败

解决方案:

  1. 创建新的 venv 并重新安装要求,或者
  2. 将文件夹重命名为旧名称

更改PATH 不是解决方案。 venv 脚本在各种文件中创建一些其他路由。

注意:使用python3 -m venv venv测试

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多