2017-04-18 25 views
1

我知道這個問題已被多次詢問。我已經閱讀了所有這些內容,但無法解決我的問題。以下是我的目錄結構。ImportError:No module named <something>

ankur 
    --ankur1 
      __init__.py 
      util.py 
    --ankur2 
      main.py 
    --__init__.py 

在main.py中,我導入了以下內容。

import ankur.ankur1.util 

當我在windows中執行代碼時,它工作得很好。但在Linux中,我收到以下錯誤。

ImportError: No module named ankur.ankur1.util 

我還閱讀了關於Modules和Packages的官方python doc

+0

您是否已將軟件包安裝到環境中? – Busturdust

+0

感謝您的回覆。我沒有明白。我們是否需要單獨安裝?在我的Windows環境中,它工作正常。 –

+0

我認爲這可能是'PYTHONPATH'問題​​,它在Windows上正確配置,而不是在Linux上,將代碼庫添加到路徑或安裝它,以便它自動定位到路徑 – Busturdust

回答

1

你的包裝結構是OK的。您的進口聲明是確定的。缺少的唯一東西是包裝在sys.path中可見。

通常我們通過setup.py這樣做,通過在本地「安裝」軟件包,但您的項目似乎沒有setup.py請勿直接修改代碼中的sys.path。您可以改爲使用PYTHONPATH環境變量。在你的shell中:

export PYTHONPATH=/path/to/parent 

其中parent是包含ankur子目錄的目錄。