[英]Importing a module from an upper directory within a package when the package is imported from another place
我有一個遇到問題的項目。
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。 我知道有類似的條目可以解決這個問題,但是我找不到能幫助我的條目。
從子程序包導入時,還必須引用封閉的程序包。
在此示例中,在network.py中,使用
from kreivik.classes import *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.