我有一个从虚拟环境安装的包。如果我只是启动 python 解释器,则可以很好地导入该包。但是,如果我启动 Idle,则无法导入该包(因为它仅在一个特定的 virtualenv 中可用而不是全局的)。如何从 virtualenv 启动 Idle,以便 virtualenv 中的所有包都可用?
最佳答案
简答
- 启动虚拟环境
- 运行
python -m idlelib.idle
来自 this answer .
长答案
此答案假定 Python 3。
有几种不同的虚拟环境管理器,每一种都有稍微不同的方式来处理 python 的安装位置和运行方式,as detailed in this answer .
此答案假定 venv
模块被使用,它是 installed following the docs .
注意:一些 Linux 发行版将 venv 模块打包到一个单独的包中:Ubuntu和 Debian
如果虚拟环境安装在名为 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.bat
或 Activate.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
然后,从 csh
或 fish 以外的任何 shell , 通过以下方式激活环境:
# Most operating systems
cd my_project_dir
. my_project-venv/bin/activate
对于 csh
和 fish
有用于激活虚拟环境的特定于 shell 的脚本(activate.csh
和 activate.fish
),它们可以像 activate
脚本一样运行。
在所有操作系统上激活虚拟环境后,运行以下命令将启动 IDLE 并访问安装到虚拟环境中的软件包:
python -m idlelib.idle
关于python - 如何从虚拟环境 (virtualenv) 启动 python Idle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4924068/