WSL 解决方案(Windows 上的 Ubuntu)
如果您使用的是 WSL(Windows 上的 Ubuntu),您还可以在 pycharm 中将 bash 作为终端打开并激活 linux virtualenv。
使用 .pycharmrc 文件,如 Peter Gibson 的回答中所述;将.pycharmrc 文件添加到您的主目录,内容如下:
source ~/.bashrc
source ~/path_to_virtualenv/bin/activate
在 Pycharm 中文件 > 设置 > 工具 > 终端 添加以下“Shell 路径”:
"C:/Windows/system32/bash.exe" -c "bash --rcfile ~/.pycharmrc"
项目特定的虚拟环境
.pycharmrc 中的 virtualenv 路径不必是绝对的。您可以通过设置项目目录的相对路径来设置项目特定的 virtualenv。
我的 virtualenv 始终位于我的项目目录下的“venv”文件夹中,所以我的 .pycharmrc 文件如下所示:
源〜/ .bashrc
source ~/pycharmvenv/bin/activate #绝对路径
source ./venv/bin/activate #相对路径
奖励:自动打开 ssh 隧道以连接 virtualenv 作为项目解释器
将以下内容添加到您的 .pycharmrc 文件中:
if [ $(ps -aux | grep -c 'ssh') -lt 2 ]; then
sudo service ssh start
fi
这会检查一个 ssh 隧道是否已经打开,否则打开一个。
在 Pycharm 的 File -> Settings -> Project -> Project Interpreter 中,添加一个新的远程解释器,配置如下:
+--------------+----------------- --------------+--------+----+
|姓名: | | | |
|选择 | 'SSH 凭证' | | |
|主持人:| 127.0.0.1 |港口: | 22 |
|用户: | | | |
|授权类型:| '密码' | | |
|密码: | | | |
| Python 解释器路径:| | | |
| Python 助手路径:| | | |
+--------------------------+---------- -----------+-------+----+
现在,当您打开项目时,您的 bash 会自动在您的 virtualenv 中启动,打开一个 ssh 隧道,然后 pycharm 将 virtualenv 作为远程解释器连接。
警告:Windows 中的最后一次更新会在启动时自动启动 SshBroker 和 SshProxy 服务。这些阻止了从 linux 到 windows 的 ssh 隧道。您可以在任务管理器 -> 服务中停止这些服务,之后一切都会恢复正常。