我想从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?
答案 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,将模块作为脚本导入。它对我有用。