如何从虚拟环境(virtualenv)启动Python Idle。

15 浏览
0 Comments

如何从虚拟环境(virtualenv)启动Python Idle。

我有一个从虚拟环境安装的包。如果我只是启动Python解释器,那个包就能被成功导入。然而,如果我启动Idle,这个包就不能被导入(因为它只能在特定的虚拟环境中使用而不是全局)。我该如何从虚拟环境启动Idle,使得虚拟环境中的所有包都能使用?

admin 更改状态以发布 2023年5月21日
0
0 Comments

对于 Python 3.6+,请查看下面 Paul Wicking 的答案

在 Python3.6 之前的版本,IDLE 本质上是

from idlelib.PyShell import main
if __name__ == '__main__':
  main()

因此,除非您在构建虚拟环境时没有默认包,否则可以自行启动它。

0
0 Comments

简短回答

  1. 启动虚拟环境
  2. 运行python -m idlelib.idle

来自这个答案

详细回答

此答案假定使用Python 3。

有几种不同的虚拟环境管理器,每个管理器都有稍微不同的方式来处理安装python的位置和如何运行它,如详细说明

此答案假定使用venv模块,并且是按照文档的说明安装的。

注意:一些Linux发行版将venv模块打包到单独的软件包中:UbuntuDebian

如果通过从文件夹my_project内部运行python -m venv my_project-venv而将虚拟环境安装在名为my_project-venv的文件夹中,则虚拟环境将在模块创建的新文件夹内部:

my_project_dir
      │
      ┝━ my_project-venv

在Windows上,使用Python 3.7.1,my_project-venv文件夹里的文件可能是这样的:

my_project-venv
      │
      ┝━ Include
      ┝━ Lib
      ┝━ Scripts
      │     ┝━ ...
      │     ┝━ activate.bat
      │     ┝━ Activate.ps1
      │     ┝━ deactivate.bat
      │     ┕━ ...
      │
      ┕━ pyvenv.cfg

虚拟环境可以通过运行activate.batActivate.ps1脚本启动,具体取决于是否使用cmd或PowerShell:

:: Using cmd.exe
cd my_project_dir
.\my_project-venv\Scripts\activate.bat


# Using PowerShell
cd my_project_dir
.\my_project-venv\Scripts\Activate.ps1

注意:如果通过双击脚本运行,这些脚本不会保持shell开启状态。您需要先打开一个shell,然后输入上述命令并更改文件夹名称以适应您的项目。

在大多数其他操作系统中,虚拟环境文件夹看起来是这样的:

my_project-venv
      │
      ┝━ bin
      │     ┝━ ...
      │     ┝━ activate
      │     ┝━ activate.csh
      │     ┝━ activate.fish
      │     ┕━ ...
      │
      ┝━ include
      ┝━ lib
      ┝━ lib64
      ┕━ pyvenv.cfg

然后,从除cshfish之外的任何shell中激活环境:

# Most operating systems
cd my_project_dir
. my_project-venv/bin/activate

对于cshfish,有特定于shell的脚本以激活虚拟环境(分别是activate.cshactivate.fish),可以像运行activate脚本一样运行它们。

一旦在所有操作系统上激活了虚拟环境,运行以下命令将启动IDLE并访问已安装到虚拟环境中的软件包:

python -m idlelib.idle

0