2017-08-29 90 views
0

我在文件夾./project/utils中的文件夾projectread.py中有一個main.py文件。在main.py,我叫ImportError:No modules named utils.read

import sys, os 
sys.path.append('./utils/') 
from utils.read import function1 

然而,當我使用python main.py命令,我得到了錯誤 ImportError: No module named utils.read。我應該改變什麼?感謝所有

回答

4

我認爲你需要在你的目錄添加__init__.py

..

確保您在utils文件夾中有__init__.py ..然後只蟒蛇就會明白這是包文件夾包含PY

+0

我應該在文件'__init __。py'中插入什麼? – user8264

+0

只需在utils文件夾下創建__init_.py ..你不需要把任何東西放入它..它只是爲了識別它的包文件夾 –

+0

你是對的。它現在有效。 – user8264

1

__init__.py指定該文件夾實際上是一個包。 python中的包是一個包含.py文件(模塊)的目錄。在每個文件夾(即包含多個.py文件的文件夾)中,您應該定義__init__.py。 它可以爲空,也可以在導入包(或包中的模塊)時執行一些語句。

對於〔實施例,讓我們在這個目錄樹: /dev/package/greeter.py 和當前工作目錄是的/ dev

>>> from package import greeter 

Traceback (most recent call last): 
    File "<pyshell#4>", line 1, in <module> 
    from package import greeter 
ImportError: No module named package 

import pakcage導致相同的錯誤。 將__init__.py添加到包文件夾中時,它可以工作。我的init是簡單

print 'init executed'

>>> from package import greeter 
init executed 

>>> 

一個擺在__init__.py常用功能是__all__變量。你可以在這裏閱讀更多關於Can someone explain __all__ in Python?