[英]Running Python a script from another directory
首先,假设以下文件结构:
project-dir
|_
package1
|_
__init__.py
module1.py
module2.py
以及以下脚本内容:
module2.py:
def func_module2():
print('func_module2 run')
module1.py:
from package1 import module2
module2.func_module2()
从项目目录执行以下命令会产生错误:
python package1/module1.py
错误:
Traceback (most recent call last):
File "./package1/module1.py", line 1, in <module>
from package1 import module2
ImportError: No module named 'package1'
为什么会发生这种情况,又有可能从另一个目录运行Python脚本吗?
Python 3.5.2
您的问题似乎是module1.py
和module2.py
都位于同一包中。 在module1.py
您不会在另一个软件包中找到module2.py
。 而是尝试:
import module2
module2.func_module()
尝试我得到:
> python package1/module1.py
func_module2 run
但是,如果您希望它也作为软件包工作(或使用新版本的python),则必须使用
from . import module2
module2.func_module()
但这会使python package1/module1.py
无法工作,因为它不会作为程序包的一部分运行。 相反,您可以使用
> python -m package1.module1
func_module2 run
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.