如何从虚拟环境(virtualenv)启动Python Idle。
如何从虚拟环境(virtualenv)启动Python Idle。
我有一个从虚拟环境安装的包。如果我只是启动Python解释器,那个包就能被成功导入。然而,如果我启动Idle,这个包就不能被导入(因为它只能在特定的虚拟环境中使用而不是全局)。我该如何从虚拟环境启动Idle,使得虚拟环境中的所有包都能使用?
对于 Python 3.6+,请查看下面 Paul Wicking 的答案。
在 Python3.6 之前的版本,IDLE 本质上是
from idlelib.PyShell import main if __name__ == '__main__': main()
因此,除非您在构建虚拟环境时没有默认包,否则可以自行启动它。
简短回答
- 启动虚拟环境
- 运行
python -m idlelib.idle
来自这个答案。
详细回答
此答案假定使用Python 3。
有几种不同的虚拟环境管理器,每个管理器都有稍微不同的方式来处理安装python的位置和如何运行它,如详细说明。
注意:一些Linux发行版将venv模块打包到单独的软件包中:Ubuntu和Debian
如果通过从文件夹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.bat
或Activate.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
然后,从除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