繁体   English   中英

如何使用相对路径从不同目录导入python脚本?

[英]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

从 Python 中的相对路径导入中所述

并由@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM