我在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仅在“运行”中设置)。
有什么办法