如何在PyCharm终端中激活虚拟环境?
我已经设置好了PyCharm,创建了我的虚拟环境(可以通过虚拟环境命令,或者直接在PyCharm里创建),并把这个环境设置为我的解释器。一切都运行得很好。
但是,当我通过“工具,打开终端”来打开一个终端时,显示的命令行提示符并没有使用虚拟环境;我还是得在那个终端里输入source ~/envs/someenv/bin/activate
来激活它。
还有一种方法是先在一个命令行里激活环境,然后再从这个环境中启动PyCharm。这样也能用,但看起来很麻烦,而且如果我在PyCharm里切换环境或项目,就会出现大问题:我可能会用错环境。
有没有什么更简单的方法,让“工具,打开终端”自动激活虚拟环境呢?
33 个回答
我找到了一种小技巧,居然对我有用。你只需要把默认的终端从Power Shell换成CMD就行。
- 打开pycharm --> 进入设置 --> 工具 --> 终端
- 把
Shell Path
从PS
改成C:\Windows\system32\cmd.exe
- 勾选
Activate virtualenv
这个选项 - 点击
apply
,然后打开一个新的终端
现在是2021年,你不需要再指定文件路径或者添加环境变量了。
更新:现在是2022年,我又遇到了同样的问题 解决办法:按照上面的步骤操作,另外确保你选择了你的虚拟环境中的python.exe作为项目的python解释器,这样就可以了
对于Windows用户,在使用PyCharm和Windows下的虚拟环境时,你可以在cmd.exe中使用/k参数来自动设置虚拟环境。
你可以去设置,找到终端,默认的shell,然后添加/K <path-to-your-activate.bat>
。
我没有足够的声望去评论之前的回答,所以在这里发这个更正的版本。这真的能节省很多时间。
更新:
注意:现在Pycharm直接支持虚拟环境,对我来说效果很好,所以我之前的解决办法就不需要了。
更新:
在设置中的偏好选项(Preferences)| 工具(Tools)| 终端(Terminal)里的设置是全局的。
如果你为每个项目都使用一个虚拟环境(venv),记得使用当前的路径变量和一个默认的虚拟环境名称:
"cmd.exe" /k ""%CD%\venv\Scripts\activate""
对于Windows用户:在使用PyCharm和虚拟环境时,可以通过在cmd.exe
中使用/K
参数来自动设置虚拟环境。
如果你用的是PyCharm 3或4:去设置
,然后选择终端
,在默认shell
里添加/K <你的activate.bat的路径>
。
如果你用的是PyCharm 5:去设置
,然后选择工具
,再选择终端
,在Shell path
里添加/K <你的activate.bat的路径>
。
如果你用的是PyCharm 2016.1或2016.2:去设置
,然后选择工具
,再选择终端
,在Shell path
里添加""/K <你的activate.bat的路径>""
(记得加上引号)。同时在cmd.exe周围也加上引号,最终结果是:
"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""
编辑:
根据 这个链接,PyCharm 2016.3(发布于2016年11月)现在直接支持在终端中使用虚拟环境。
它可以自动支持 bash、zsh、fish 和 Windows 的命令行。你可以在设置(Preferences)| 工具(Tools)| 终端(Terminal)中选择“激活虚拟环境”(Activate virtualenv)。
你还需要确保你的虚拟环境路径包含在项目结构的内容根文件夹中。如果你的环境没有包含在项目目录里,可以去设置(Preferences)| 项目(Project)| 项目结构(Project Structure)进行调整。
***旧方法:***
在你的主文件夹中创建一个名为 .pycharmrc
的文件,内容如下:
source ~/.bashrc
source ~/pycharmvenv/bin/activate
在最后一个参数中使用你的虚拟环境路径。
然后在设置中,将 Shell 的首选项设置为 项目设置(Project Settings)中的 Shell 路径:
/bin/bash --rcfile ~/.pycharmrc