Python - 没有名为

时间:2016-10-06 19:31:49

标签: python python-2.7

我有以下几个模块的代码:

import Persistence.Image as img
import sys

def main():
    print(sys.path)
    original_image = img.Image.open_image()


if __name__ == "__main__":
    main()

(我已经创建了自己的Image模块)

所以我收到以下错误声称持久性模块不存在:

Traceback (most recent call last):
  File "/home/ulises/PycharmProjects/IntelligentPuzzle/Puzzle.py", line 1, in <module>
    import Persistence.Image as img
ImportError: No module named Persistence.Image

我一直在这里搜索这个问题,但找不到任何可以解决这个问题的方法,因为目录树似乎是正确的,你可以在这张图片上看到:

enter image description here

如果有任何用途,我正在使用ubuntu。

谢谢和问候!

2 个答案:

答案 0 :(得分:1)

该源代码树中不存在

Persistence包。那里有一个&#34; Persistence&#34; 目录,但它不是一个包,因为它不包含__init__.py文件。

来自Python documentation

  

需要__init__.py个文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下,__init__.py可以只是一个空文件,但它也可以执行包的初始化代码或设置__all__变量,稍后将对此进行描述。

答案 1 :(得分:-1)

我不相信您使用正确的语法导入。您需要使用from Persistance import Image as img。例如:

>>> import cmath.sqrt as c_sqrt
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import cmath.sqrt
ImportError: No module named 'cmath.sqrt'; 'cmath' is not a package
>>> from cmath import sqrt as c_sqrt
>>> c_sqrt(-1)
1j