python 从邻居分包导入分包
python subpackage import from neighbour subpackage
考虑以下层次结构
MusicEditor (package)
Converters (subpackage)
...
Transformations (subpackage)
...
Utility (subpackage)
...
将实用程序子包中的 file/module 导入转换器子包中的文件的正确方法是什么?
例如将 Utility/string.py 导入文件 Converters/wav.py
我该怎么做?
编辑以回应 Ismael Infante
以下是否正确?
假设 MusicEditor 位于 /usr/something/MusicEditor。然后我会编辑 python 路径如下?
PYTHONPATH = PYTHONPATH + /usr/something/
然后我会将初始化文件添加到每个目录,如下所示:
MusicEditor (package)
__init__.py
Converters (subpackage)
__init__.py
...
Transformations (subpackage)
__init__.py
...
Utility (subpackage)
__init__.py
...
然后将实用程序中的内容包含到位于转换器中的文件中,我会简单地去:
(MusicEditor/Converters/wav.py)
import MusicEditor.Utility.string
这是正确的吗?但我也可以使用以下相对路径
(MusicEditor/Converters/wav.py)
import ..Utility.string
是吗?
您必须在每个目录中放置一个 __init__.py
空文件。这样,您的目录将成为包。
之后,您必须设置 PYTHONPATH 变量。此变量必须指向 MusicEditor 的父目录。 Python 解释器可以通过这个变量访问您的包。
考虑以下层次结构
MusicEditor (package)
Converters (subpackage)
...
Transformations (subpackage)
...
Utility (subpackage)
...
将实用程序子包中的 file/module 导入转换器子包中的文件的正确方法是什么?
例如将 Utility/string.py 导入文件 Converters/wav.py
我该怎么做?
编辑以回应 Ismael Infante
以下是否正确?
假设 MusicEditor 位于 /usr/something/MusicEditor。然后我会编辑 python 路径如下?
PYTHONPATH = PYTHONPATH + /usr/something/
然后我会将初始化文件添加到每个目录,如下所示:
MusicEditor (package)
__init__.py
Converters (subpackage)
__init__.py
...
Transformations (subpackage)
__init__.py
...
Utility (subpackage)
__init__.py
...
然后将实用程序中的内容包含到位于转换器中的文件中,我会简单地去:
(MusicEditor/Converters/wav.py)
import MusicEditor.Utility.string
这是正确的吗?但我也可以使用以下相对路径
(MusicEditor/Converters/wav.py)
import ..Utility.string
是吗?
您必须在每个目录中放置一个 __init__.py
空文件。这样,您的目录将成为包。
之后,您必须设置 PYTHONPATH 变量。此变量必须指向 MusicEditor 的父目录。 Python 解释器可以通过这个变量访问您的包。