如何从同一程序中的不同目录导入包?
How to import a package from a different directory in the same program?
假设我有一个如下所示的目录树:
main -
|
lib-
|
core-
|
fun-
|
some_file
stuff-
|
another_file
如何将模块从 some_file
导入到 another_file
?每次我尝试导入时(是的,我知道 __init__.py
)我都会收到错误消息:
Traceback (most recent call last):
File "file.py", line 6, in <module>
from some_file import some_method
ImportError: No module named some_file
是否可以将模块导入到另一个文件中?
如果您遍历的所有目录都是 Python 个包(其中包含 __init__.py
个文件),您可以使用绝对或相对导入。
假设您是 运行 您的程序,来自 main
包所在的目录,您将导入 some_file
模块:
import main.lib.core.fun.some_file
否则您必须在尝试导入之前附加到 Python 路径:
import sys
sys.path.append("......main/lib/core")
import fun.some_file
第二个例子假设 fun 是一个 Python 包,里面有 __init__.py
个文件。
只需在目录中添加一个 __init__.py
文件,使其被视为一个模块:
main -
|
lib-
|
core-
|
fun-
|
some_file
__init__.py
stuff-
|
another_file
__init__.py
可以是一个空白文件,重要的是它存在。然后,你可以做 import fun.some_file
假设我有一个如下所示的目录树:
main -
|
lib-
|
core-
|
fun-
|
some_file
stuff-
|
another_file
如何将模块从 some_file
导入到 another_file
?每次我尝试导入时(是的,我知道 __init__.py
)我都会收到错误消息:
Traceback (most recent call last):
File "file.py", line 6, in <module>
from some_file import some_method
ImportError: No module named some_file
是否可以将模块导入到另一个文件中?
如果您遍历的所有目录都是 Python 个包(其中包含 __init__.py
个文件),您可以使用绝对或相对导入。
假设您是 运行 您的程序,来自 main
包所在的目录,您将导入 some_file
模块:
import main.lib.core.fun.some_file
否则您必须在尝试导入之前附加到 Python 路径:
import sys
sys.path.append("......main/lib/core")
import fun.some_file
第二个例子假设 fun 是一个 Python 包,里面有 __init__.py
个文件。
只需在目录中添加一个 __init__.py
文件,使其被视为一个模块:
main -
|
lib-
|
core-
|
fun-
|
some_file
__init__.py
stuff-
|
another_file
__init__.py
可以是一个空白文件,重要的是它存在。然后,你可以做 import fun.some_file