0

我有一个python项目,我把它分成两部分,一个库部分和一个二进制部分。

出于组织原因,我希望有这样的层次结构:

project/
    lib/
        __init__.py
        module1.py
        module2.py
    bin/
        binary1.py # contains: import module1
        binary2.py # contains: import module2
    doc/
    ...

问题当然是二进制{1,2}.py 中的简单导入不起作用,至少在编码阶段(安装之前)。

有什么建议么?编码时如何测试代码?

4

1 回答 1

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导入module1binary1.py

from project.lib import module1

这些__init__.py文件可以使导入更简单,假设在每个文件中都有一个类。通常你必须像这样导入类(包括文件名):

from project.lib.module1 import Module1

但是,如果您编辑lib/__init__.py以包含此行:

from project.lib.module1 import Module1

您可以使用 的命名空间直接从以下位置lib导入:Module1lib

from project.lib import Module1
于 2013-01-30T14:30:53.017 回答