从bash脚本运行Python会导致自定义模块导入错误

时间:2017-05-25 21:20:46

标签: python linux bash python-3.x importerror

我正在运行一个导入自定义函数的python脚本。我的脚本名为update_wx.py,位于weather目录中。当我从我的linux命令行运行这个python weather/update_wx.py时,它运行正常。但是,当我将其作为bash脚本的一部分运行时,我收到以下python错误:

  

ModuleNotFoundError:没有名为' weather'

的模块

导致此错误的update_wx.py中的行是

  

from weather.nasa.nasa import import_wx_data

对于上下文,nasa.pynasa目录中的一个脚本,位于weather目录中。正如我所说,从命令行运行时这是有效的。我检查了所有文件和目录的文件权限,更改了update_wx.py脚本中的工作目录,并在我的bash脚本中编辑了python路径,但都无济于事。

如何在通过bash运行脚本时导入此python函数?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

假设你的天气模块存储在解释器之外,我认为问题是解释器不知道模块,它只知道正在执行的.py文件,你需要相对让解释器知道如何使用"导航到父母。 ... "像

from .weather.nasa.nasa import weather_wx_data

请参阅Relative imports for the billionth time

或者你安装了多个解释器,你需要使用像

这样的绝对路径来调用解释器
/root/python27/python.exe "/c/weather/update_wx.py"