首页 > 解决方案 > Pycharm 运行将当前工作目录添加到 PYTHONPATH 的代码

问题描述

试图弄清楚这一点,因为我从 Pycharm 和终端运行代码时存在不一致。

Pycharm 自动添加当前工作目录;所以如果我添加一个包含在我的 CWD 中的模块,它不在 Pythonpath 中,它就可以正常工作。

但是当从终端运行时,Python 确实会抱怨,因为我的导入语句引用了无法访问的模块,因为 CWD 没有添加到 PYTHONPATH (我确实验证了这个打印出变量的内容,同时从 Pycharm 和终端运行)。

所以此时我假设在我的启动代码中,我需要将当前目录添加到 Pythonpath,或者这不正确?我无法知道最终用户可能会将我的代码放在哪里;我只是假设包含我所有不同模块的整个目录位于特定位置。

更具体地说,这就是我所在的位置:

标签: python

解决方案


经过各种反复试验,感谢我从评论中获得的信息;我确实找到了两种解决问题的方法。

1)创建一个shell脚本或另一个python脚本,它正在添加当前目录(所有文件所在的位置),并且在这个文件中没有导入。然后脚本调用具有主要功能的脚本。

2) 在模块的顶部,在 import 之后sys,添加添加路径的语句,这样当 import 尝试访问模块时,当前目录将被添加到 PATH 中并且可以访问。

看起来都不是很好,但这就是我能找到的解决问题的全部。很确定有一种更优雅的方式来做到这一点


推荐阅读