MS VS Community 2017中的相对进口

时间:2017-08-24 16:26:31

标签: python python-import

我在MS VS Community 2117中有一个解决方案,在这个解决方案中有两个项目。这看起来像

solution-
        |
        |-project A-
        |          |
        |          |-A.py
        |-project B-
                   |
                   |-B.py

我要从A.py到B.py导入一个类(让它也命名为A)。但是当我在B.py内部尝试写

from .A import A

.A不可见。

我可以使用相对导入来设置两个项目的模块之间的关系,还是我做错了什么?

我正在使用CPython 3.6。

1 个答案:

答案 0 :(得分:0)

可以在包中使用相对导入。要创建一个包,您需要在每个要创建包的目录中添加一个名为__init__.py的空文件。然后导入包括将其作为包导入的目录:

例如:

main.py

solution/
|
|- __init__.py
|
|-- project_a/
|          |
|          |- __init__.py
|          |- a.py
| 
|-- project_b/
           |
           |- __init__.py
           |- b.py

a.py:

print "Hello A"

将../project_a/a.py导入b.py:

from solution.project_a import a

print "Hello B"
从main.py

您可以将b作为包导入:

from solution.project_b import b

print "Hello Main"

现在执行main.py:

Hello A
Hello B
Hello Main