我有一个python项目,我将它分为两部分,一个库部分和一个 二元部分。
出于组织原因,我希望有一个这样的层次结构:
project/
lib/
__init__.py
module1.py
module2.py
bin/
binary1.py # contains: import module1
binary2.py # contains: import module2
doc/
...
问题是,当然,二进制{1,2} .py中的简单导入不起作用,at 至少在编码阶段(安装前)。
有什么建议吗?在编码时如何测试代码?
答案 0 :(得分:0)
我到处都使用绝对导入。
project/
__init__.py
lib/
__init__.py
module1.py
module2.py
bin/
__init__.py
binary1.py # contains: import module1
binary2.py # contains: import module2
doc/
...
将PYTHONPATH设置为project
上方的目录,您可以从module1
导入binary1.py
,如下所示:
from project.lib import module1
__init__.py
文件可以使导入更简单,比方说你在每个文件中都有一个类。通常你必须像这样导入类(inclduding filename):
from project.lib.module1 import Module1
但是,如果您修改lib/__init__.py
以包含此行:
from project.lib.module1 import Module1
您可以使用lib
的命名空间直接从Module1
导入lib
:
from project.lib import Module1