我有一个项目,我遇到了问题。
kreveik.
|-- classes
| |-- baseclasses.py
| |-- family.py
| |-- __init__.py
| `-- network.py
|-- family
| |-- __init__.py
| `-- killer.py
`-- genetic
`-- __init__.py
这是该项目的相关部分。回溯向我解释了我在代码中尝试做的事情。
/home/mali/workspace/kreveik/<ipython-input-7-ec5770ffbdf2> in <module>()
----> 1 import kreveik
/home/mali/workspace/kreveik/kreveik/__init__.py in <module>()
----> 1 import classes
2 import numpy as num
3 import matplotlib.pyplot as plt
4 import network
5 import probes
/home/mali/workspace/kreveik/kreveik/classes/__init__.py in <module>()
9 import copy
10 from baseclasses import ProbeableObj,Ensemble,Element
---> 11 from network import TopologicalNetwork,Motif,Network
12 from family import Family
13
/home/mali/workspace/kreveik/kreveik/classes/network.py in <module>()
3 """
4
----> 5 import classes
6 import numpy as num
7 import matplotlib.pyplot as plt
ImportError: No module named classes
我在目录/kreveik
中打开一个交互式python会话,然后我尝试导入kreveik包,它的初始文件位于/kreveik/kreveik/__init__.py
那里,它开始导入包中需要的其他工具,在包classes
中,我导入了我最常用的类,梦想着我能够通过它们在层次结构中相对于文件夹/kreveik/kreveik/
的位置来访问它们。文件/kreveik/kreveik/classes/network.py
对包classes
的调用失败,就好像它不在项目目录的最顶层。层次结构。我打算将我的所有课程称为classes.baseclasses.SomeClass()
,而不管我在项目中所称的位置。我哪里做错了?
由于 PS。我知道帽子有类似的条目解决这个问题,但我找不到可以帮助我的那个。
答案 0 :(得分:1)
从子包导入时,您还必须引用封闭包。
在此示例中,在network.py中,使用
from kreivik.classes import *