在哪里可以找到 PyCharm 在其 venv 中使用的 Python 可执行文件?

在哪里可以找到 PyCharm 在其 venv 中使用的 Python 可执行文件?

我在 Linux Mint 20.3 下使用 PyCharm 2022.3.2(社区版)。我创建了一个新项目并选择“使用 Virtualenv 的新环境”作为选项。 PyCharm 显示“Python 3.10”作为该项目的解释器:

PyCharm Python 解释器

在这个项目中运行我的代码,包括将新包安装到 venv 中,一切都正常。 PyCharm 中的交互式 Python 控制台还确认 Python 3.10 与 venv 中的可执行文件一起使用:

PyCharm Python 控制台

但是,现在我想从常规终端执行我的代码(没有 PyCharm)。所以我cd进入我的项目目录并调用以下命令:

$ source venv/bin/activate
(venv) $ which python
python not found

它没有找到 python 可执行文件!中的 3 个符号链接venv/bin均无效(在我的终端窗口中为红色):

(venv) $ ls -lah venv/bin/pyt*
lrwxrwxrwx 1 (redacted) (redacted) 19 Mar 15 09:56 venv/bin/python -> /usr/bin/python3.10
lrwxrwxrwx 1 (redacted) (redacted)  6 Mar 15 09:56 venv/bin/python3 -> python
lrwxrwxrwx 1 (redacted) (redacted)  6 Mar 15 09:56 venv/bin/python3.10 -> python

/usr/bin/python3.10我的系统上没有安装:

$ ls -lah /usr/bin/pyt*
lrwxrwxrwx 1 root root    9 Aug  8  2020 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3,5M Jul  1  2022 /usr/bin/python2.7
lrwxrwxrwx 1 root root    9 Aug  8  2020 /usr/bin/python3 -> python3.8
-rwxr-xr-x 1 root root 5,3M Nov 14 13:59 /usr/bin/python3.8
lrwxrwxrwx 1 root root   33 Nov 14 13:59 /usr/bin/python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx 1 root root   16 Mar 13  2020 /usr/bin/python3-config -> python3.8-config

那么 PyCharm 使用的 Python 3.10 可执行文件位于哪里?我如何在 PyCharm 之外使用 venv?

答案1

我终于明白是怎么回事了。我通过 Linux Mint 软件管理器安装了 PyCharm,它将其安装为弗莱帕克包裹。显然,这个包在沙箱中使用了自己的Python 3.10:

沙箱

使用 Flatpak,每个应用程序都在一个隔离的环境(称为“沙盒”)中构建和运行。每个沙箱都包含一个应用程序及其运行时。

(Flatpak - 基本概念

当进入这个沙箱时,会找到正确的Python可执行文件,可以正确输入venv并可以启动应用程序:

$ flatpak run --branch=stable --arch=x86_64 --command=bash com.jetbrains.PyCharm-Community

$ ls -lah /usr/bin/pyt*
lrwxrwxrwx 1 nfsnobody nfsnobody    7 Feb 27 11:05 /usr/bin/python -> python3
lrwxrwxrwx 1 nfsnobody nfsnobody   10 Feb 27 11:05 /usr/bin/python3 -> python3.10
-rwxr-xr-x 2 nfsnobody nfsnobody  16K Feb 27 11:04 /usr/bin/python3.10
-rwxr-xr-x 2 nfsnobody nfsnobody 3,3K Feb 27 11:04 /usr/bin/python3.10-config
lrwxrwxrwx 1 nfsnobody nfsnobody   17 Feb 27 11:05 /usr/bin/python3-config -> python3.10-config
$ cd <project_directory>
$ source venv/bin/activate
(venv) $ which python
<project_directory>/venv/bin/python

相关内容