簡體   English   中英

從另一個位置導入包時,從包的上層目錄導入模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM