防止PyCharm在远程Docker解释器中覆盖PYTHONPATH

时间:2019-08-16 19:50:34

标签: python docker pycharm

我在PyCharm 2019.2中设置了一个远程Docker解释器,在那里我可以连接并运行简单的Python脚本。但是,我尝试使用的Docker映像(ros:kinetic-ros-base在其入口点对$PYTHONPATH进行了一些修改,似乎PyCharm会忽略/覆盖。

我可以通过直接从Docker容器打印$PYTHONPATH变量来演示这一点:

$ docker run -it ros:kinetic-ros-base python
>>> import os
>>> os.environ['PYTHONPATH']
'/opt/ros/kinetic/lib/python2.7/dist-packages'

或者通过使用PyCharm通过远程Docker解释器使用相同的ros:kinetic-ros-base映像来运行脚本:

import os
print(os.environ['PYTHONPATH'])
/opt/project:/opt/.pycharm_helpers/pycharm_matplotlib_backend:/opt/.pycharm_helpers/pycharm_display

在容器的入口点脚本运行之后,很明显PyCharm正在替换$PYTHONPATH变量。

我可以通过在/opt/ros/kinetic/lib/python2.7/dist-packages的运行配置的环境变量中添加Edit Configurations...来解决这个问题,但是依赖容器的PYTHONPATH的代码检查无法解决。行import rospy给出了IDE错误No module named rospy,尽管它可以正常运行(显然,在这种情况下,PYTHONPATH仅在“运行”中设置)。

有什么办法

  1. 获取PyCharm以尊重Docker映像的ENTRYPOINT脚本中对PYTHONPATH所做的更改,或者
  2. 获取集成的代码编辑器检查以在“运行”配置中使用手动定义的PYTHONPATH环境变量吗?

0 个答案:

没有答案