python导入依赖项的模块错误

时间:2013-08-01 08:29:05

标签: python importerror

我正在尝试了解整个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

我该如何解决这个问题?


修改

道歉 - 事实证明这是一个循环依赖问题。我为这种困惑道歉!

2 个答案:

答案 0 :(得分:1)

尝试使用__init__.py

在同一目录中创建文件go.py

答案 1 :(得分:1)

Python导入与当前PATH相关的模块,你可以通过这种方式找出它是什么:

import os
print os.environ['PYTHONPATH'].split(os.pathsep)

现在,在导入任何.py个文件中的内容时,请写下与您import有关系的PATH位置。

因此,如果您的PATHproject/(其中“project”目录是您提供的文件结构的根目录),则可以使用以下语法访问green.py:< / p>

import mypackage.green
相关问题