[英]How to import python script from a different directory using relative paths?
我有以下目录结构:
main_package
| __init__.py
| folder_1
| | __init__.py
| | folder_2
| | | __init__.py
| | | script_a.py
|
| folder_3
| | __init__.py
| | script_c.py
所有__init__.py
文件都是空的。 这是其他三个文件的内容。
脚本_a.py:
from ...folder_3 import script_c
print "Hello from script_a"
脚本_c.py:
print "Hello from script_c"
当我尝试运行如下所示的script_a.py
,它失败了。 这与此处提供的答案完全相反。
如何运行script_a.py
并将script_c.py
导入其中? 我正在使用 Python 2.71
$ pwd
main_package/folder_1/folder_2
$ python ./script_a.py
Traceback (most recent call last):
File "./script_a.py", line 1, in <module>
from ...folder_3 import script_c
ValueError: Attempted relative import in non-package
并由@tim 在评论部分建议,如果您通过添加-m
来运行脚本,它可能会起作用。
在我向您发送链接的同一主题中还建议了另一种方式(又名hacker way
)。
编辑:
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '../..', 'folder_3'))
import script_c
这个对我有用。 请问可以试试吗? 你这样导入可以吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.