让 PyCharm 在 windows linux 子系统上识别 python(在 windows 上为 bash)

新手上路,请多包涵

虽然在 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 许可协议

阅读 809
1 个回答

在 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

原文由 Bob Jordan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题