0.前言

网上关于『PyCharm + SSH 服务器』的教程林林总总,但质量参差不齐。我每次配置,都要再找一遍教程,结果就是…… 唉,不说了,说多了都是泪。

今天痛定思痛,把这套流程记录下来,并且记录一些自己踩到的坑。


1.conda 环境

这里推荐《用conda创建python虚拟环境》这篇博客。

但需要额外说明的是,目前 conda 激活环境的命令已经统一,为 $ conda activate -n <env_name>,不再是之前的 source 的写法。

此外,这里记录一个坑,参考《在Pycharm下创建Anaconda虚拟环境,但envs目录下没有interpreter解释器问题的解决》这篇博客。原因出在创建环境时:

  • 如果 $ conda create -n test 没有带上 python 参数,会导致 anaconda3/envs/test/ 下没有相关的 Python 解释器,因为此时只相当于创建了一个没有内容的名为 ”test“ 的 conda 空环境,该环境下没有安装 Python。
  • 正确写法是 $ conda create -n test python$ conda create -n test python=x.x。前者默认会安装最新的 Python 版本,后者则可以安装指定的 Python 版本。至于该命令的其他参数(如安装一些包等),具体请参考官方文档。

2.PyCharm + SSH

这里请参考《 Windows + PyCharm + 服务器 + 远程开发(多图预警)》。

这里又是一个坑:

情景再现

  • 笔者在同一台远程服务器上创建了 2 个环境 test_sshxgb,第一个用于测试,第二个是笔者正式的项目;
  • 创建第一个环境 test_ssh ,一切测试正常;创建第二个环境 xgb 也正常;
  • 但当我回到第一个环境 test_ssh 时,居然神奇的多了一个基本一样的部署的配置,唯一的区别在于第二个配置里 “Mappings” 是空白的;

  • 然后我就删掉了下面一个,然后第二个环境能连上服务器,但是会报错,无法运行;
  • 后来我学乖了,两个部署的配置都不删除,可相同的问题还是存在。

问题解决

排查一圈,发现最终问题出现在 []Visible only for this project 上,我在 test_ssh 项目里给勾上了这个,结果就导致另一个 xgb 项目无法使用。:joy:


3.小结

  • conda 环境需要加上 python 参数才能安装上 Python。
  • PyCharm 针对同一个服务器配置的多个 conda 环境(或者说多个 Python 解释器),会相应地生成多个部署的配置(”Deployment”),虽然点进去查看,会发现它们长得很像,但千万不要以为是自己重复配置了,就将其删除!
  • 针对上述同一个服务器配置多个 conda 环境的情况,还需要注意:要勾选上 []Visible only for this project,否则同样会导致另一个项目无法使用同一个服务器下的其他环境。

最后,建议将上述的配置进行重命名,从而加以区分。