1

我试图了解整个 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

我怎样才能解决这个问题?


编辑

道歉 - 它原来是一个循环依赖问题。我为混乱道歉!

4

2 回答 2

1

__init__.py尝试在同一目录中创建一个文件go.py

于 2013-08-01T09:34:29.857 回答
1

Python 导入与您的 current 相关的模块PATH,您可以通过这种方式了解它是什么:

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

现在,在您的任何.py文件中导入内容时,请写入import与您的PATH.

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

import mypackage.green
于 2013-08-01T09:37:32.990 回答