在同步远程和本地的依赖文件时,无法同步,报出错误事件如下:
Couldn’t refresh skeletons for remote interpreter
failed to run generator3/main.py for sftp://root@192.168.79.186:22/root/miniconda3/bin/python, exit code 1, stderr:
-----
Traceback (most recent call last):
File “/root/.pycharm_helpers/generator3/main.py”, line 172, in
main()
File “/root/.pycharm_helpers/generator3/main.py”, line 120, in main
state_json = json.loads(sys.stdin.readline(), encoding=‘utf-8’)
File “/root/miniconda3/lib/python3.9/json/init.py”, line 359, in loads
return cls(**kw).decode(s)
TypeError: init() got an unexpected keyword argument ‘encoding’
-----
远程和本地的依赖文件无法同步就会直接导致本地的pycharm因为依赖缺失而直接对所编写的代码提示红色,即语法错误,调用函数无法自动补全,无法查看函数内部实现的源码等。
本文在互联网上检索到该篇文章《【已解决】pycharm 远程服务器报错 Couldn‘t refresh skeletons for remote interpreter》描述得非常清晰。
导致上述问题的原因主要有两点:
- 远程服务器上 python 环境的安装地址发生变化,本地与之相匹配的解释器配置并未重新进行配置。
- 远程服务器上使用了 python 3.9 或更新版本,导致 json 函数下参数 encoding 非法。
问题1解决方案
① 删除远程服务器上的 /home/xxx/.pycharm_helpers 目录,
② 在 pycharm 里重新添加 python interpreter。
问题2解决方案
修改远程服务器上的文件 /home/xxx/.pycharm_helpers/generator3/main.py,删除其中的 encoding=“utf-8” 字段即可。