python - 如何从虚拟环境 (virtualenv) 启动 python Idle

标签 python virtualenv python-idle

我有一个从虚拟环境安装的包。如果我只是启动 python 解释器,则可以很好地导入该包。但是,如果我启动 Idle,则无法导入该包(因为它仅在一个特定的 virtualenv 中可用而不是全局的)。如何从 virtualenv 启动 Idle,以便 virtualenv 中的所有包都可用?

最佳答案

简答

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

来自 this answer .

长答案

此答案假定 Python 3。

有几种不同的虚拟环境管理器,每一种都有稍微不同的方式来处理 python 的安装位置和运行方式,as detailed in this answer .

此答案假定 venv模块被使用,它是 installed following the docs .

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

如果虚拟环境安装在名为 my_project-venv 的文件夹中,则通过从文件夹 my_project 中运行 python -m 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 or PowerShell is used :

:: 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

关于python - 如何从虚拟环境 (virtualenv) 启动 python Idle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4924068/

相关文章:

python - 我忘记关闭 tf.InteractiveSession,如何终止任何剩余进程?

python OptionParser.has_option 错误

python - 在 virtualenv 中安装 pip 的 Matplotlib 要求

python - CentOS下安装idle-python2.7

python - 使用字体模块的 Tkinter 代码无法从命令行运行?

pythonic 方式来最大化适合可用点列表的项目数量

python - 如何配置 VS Code 以便能够进入调试 Python 脚本时加载的共享库 (.so)?

python - 使用虚拟环境时权限被拒绝

python - 使用 IDEA 的 Python SDK 中配置的 Virtualenv 环境

python - 是否可以更改 Python Idle 中注释的颜色?