注意!!

本文只适用于 Pycharm 的远程开发问题,如果你使用的开发工具是 Jerbrains 的 Gateway 工具进行远程开发,就不要删除远程环境了。
Pycharm 远程开发是本地一套代码和环境,然后上传到远程服务器,又是一套代码和环境,所以有时会导致奇奇怪怪的不同步问题。并且默认同步文件夹仅有项目源代码文件夹,所以在本地 Pycharm 代码文件中的修改会被上传覆盖远程服务器的代码文件。而虚拟环境的改动则不会使用直接上传覆盖的方法,而是使用命令的形式进行依赖的同步调整。比如在本地环境安装一个依赖包,
Gateway 远程开发是直接使用远程服务器的代码和环境,本地是没有任何文件的,所有操作都是直接操作的远程服务器上的文件。这样就解决了不同步问题。但 Gateway 是新出的工具,很多 BUG。如果你已经用熟了 Pycharm 的远程开发,对不同步现象有解决办法,目前不建议转 Gateway。

现象

早已配好的 Python 远程虚拟环境,今天突然崩了,表现为:

设置 -> 项目 -> Python 解释器 中的所有依赖包全没了,显示不出来,清除缓存并重启不起作用,手动刷新环境索引不起作用,远程服务器上却依然正常,显示依赖全都还在且能使用命令正常启动项目。如下图(当然图中显示的是正在加载,其实加载完毕后依旧是空的):

开Charles后 pycharm不能请求url pycharm加载不了包_虚拟环境


尝试启动早已用过千百遍的 运行/调试 配置,配置中的解释器无误,路径无误,参数无误,也突然无法启动,报 ModuleNotFoundError。最基本的包都读不到,如下图:

开Charles后 pycharm不能请求url pycharm加载不了包_python_02

解决

试了诸多方法,最后在 Pycharm 中重新配置远程虚拟环境解决的。注意不是重建远程服务器上的真实虚拟环境,仅仅是重建了 Pycharm 的远程虚拟环境配置。

  1. 在 Pycharm 中把旧的远程虚拟环境配置删除

开Charles后 pycharm不能请求url pycharm加载不了包_pycharm_03

  1. 重新配置远程虚拟环境

开Charles后 pycharm不能请求url pycharm加载不了包_远程虚拟环境_04

  1. 配好后,Pycharm 将重新下载该远程环境中的包,并建立索引,此时可以读取到已安装的依赖并能正常启动了

开Charles后 pycharm不能请求url pycharm加载不了包_bug_05

总结

所以简单来讲重新配置远程虚拟环境就解决了,但为什么手动刷新环境索引,手动触发依赖同步,清空项目缓存不行?!搞什么,万能的重启、重建、重装大法是吧。而且远程文件同步偶尔也会有问题,需要手动同步

开Charles后 pycharm不能请求url pycharm加载不了包_python_06