我正在尝试了解整个Python导入/模块/包业务,但我仍然坚持这个特定问题。
我的目录结构:
.
├── README.md
├── mypackage
│ ├── __init__.py
│ ├── red.py
│ ├── blue.py
│ ├── green.py
│ └── tests
│ └── red_tests.py
│ └── green_tests.py
└── go.py
我的导入代码如下所示:
# __init__.py
from red import Red
from green import Green
# blue.py
from red import Red
# green.py
from red import Red
from blue import Blue
# go.py
from mypackage import Red, Green
但是在尝试访问go.py
类的静态类变量时,运行Green
会出现此错误:
NameError: global name 'Green' is not defined
我该如何解决这个问题?
答案 0 :(得分:1)
尝试使用__init__.py
go.py
答案 1 :(得分:1)
Python导入与当前PATH
相关的模块,你可以通过这种方式找出它是什么:
import os
print os.environ['PYTHONPATH'].split(os.pathsep)
现在,在导入任何.py
个文件中的内容时,请写下与您import
有关系的PATH
位置。
因此,如果您的PATH
是project/
(其中“project”目录是您提供的文件结构的根目录),则可以使用以下语法访问green.py
:< / p>
import mypackage.green