导入错误:从shell

时间:2017-06-05 17:24:38

标签: python shell python-import importerror pythonpath

我想从shell运行我的python脚本。

#! /usr/bin/python

import subprocess
import time

from path.to.my.function1 import function1
from path.to.my.function2 import function2

  #some code here

if __name__ == "__main__":

从我的shell命令,我想像这样运行它:

./myPythonScript.py  

结果是:

ImportError: No module named path.to.my.function1

例如,当我从Eclipse运行它时,我没有任何错误。我的目录中有一些空的_ init _.py文件。

我不想添加

sys.path.append(0, /path/to/my/function1)

因为它需要易于导出。另外,我不想将文件路径添加到PYTHONPATH的源文件夹中。它需要即插即用。

我不知道我是否有不同的编译器,或者我应该修改我的#!在/ usr / bin中/ Python的。或者它可能是我的PYTHONPATH?

3 个答案:

答案 0 :(得分:0)

您可以将您的代码设为python包,然后您就可以这样做。 只需将__init__.py脚本添加到目录中,然后将__main__.py脚本添加到您的目录中。在__main__.py中  添加if __name__ == '__main__'之后执行的代码。 对于导入,请添加以下行:     from .path.to.my.script import foo

最后,运行python -m<目录名称>。在包目录之外。

答案 1 :(得分:0)

使用PYTHONPATH = / path / to / package / root,其中包根是path上面的目录

答案 2 :(得分:0)

使用-m来运行代码,例如python -m myPythonScript,将模块作为脚本导入。它对我有用。