繁体   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