虽然在 Windows 上“本地”运行 Linux 版本的 python、pip 等令人惊叹,但我想使用合适的 IDE 来这样做。由于尚未实现 SSHD 兼容性,我正在尝试让 PyCharm 将 Linux python 识别为本地解释器。
安装 Windows Linux 子系统后,键入
bash -c python
从 Windows 命令行将把你放到 python shell 中。
bash -c "echo \"print 'hello world'\" | python"
同样有效,在 Windows shell 中生成“hello world”作为输出!
我试图将其打包为 .bat 文件并将其作为本地解释器呈现给 PyCharm,即
蟒蛇.bat:
C:\Windows\System32\bash.exe -c "echo %1 | python"
但是对于我尝试的任何变体,我总是得到“sdk 似乎无效”。由于我不确定 PyCharm 到底做了什么来“验证”SDK,所以这很难克服。
原文由 Boaz Arad 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Win10 启动 SSH 上使用 PyCharm Professional 和 WSL Python
PyCharm 只能配置为使用 WSL Python 作为远程解释器(这是由于缺少其他公共 API)。
安装 Win10 内部版本 14361 或更高版本。您还可以升级当前的 Insider Preview。
安装 wsl(类似于
lxrun /install` && lxrun /update
)运行
bash.exe
更新到最新版本
sudo apt-get update && sudo apt-get upgrade
打开
/etc/ssh/sshd_config
/etc/ssh/sshd_config
,然后设置PasswordAuthentication yes
。chroot
尚未在 WSL 中实现,您还需要设置UsePrivilegeSeparation no
键入
sudo $(sudo which sshd) -d
以在前台运行 OpenSSH(调试更容易)。你应该看到类似Server listening on 0.0.0.0 port 22
来自另一个
bash.exe
会话尝试ssh 127.0.0.1
如果您看到有关 ECDSA 指纹的消息,请回答
y
。您应该会看到密码提示。如果你看到它,那么你的服务器工作正常。使用
CTRL
+C
关闭它,并以守护进程模式启动服务器(sudo service ssh start
)。看起来 upstart 在当前 WSL 上已损坏,因此您需要运行bash.exe
,启动sshd
并在最后一个客户端断开连接时 WSL 停止后保持控制台窗口打开。您可以创建wsl_ssh.bat
文件,如bash.exe -c "sudo service ssh start &&& sleep 999d"
并使用它来启动 ssh。配置 PyCharm PyCharm 应配置为使用 WSL 作为远程解释器但无需部署,因为 Windows 上的每个驱动器都映射到 WSL 中的
/mnt/<DRIVE_NAME>
中的适当文件夹。所以,你只需要配置映射。对于远程解释器,请参阅 configuration-remote-python-interpreters 。您应该使用127.0.0.1
作为主机名,并在lxrun /install
之后输入登录名和密码。您还应该在映射中将C:\
设置为/mnt/c/
。请参阅上一篇文章中的视频。添加一名作者
2016 年 6 月 14 日 17:20
https://youtrack.jetbrains.com/issue/PY-19129#comment=27-1469350