我已經搜索了一段時間來找到解決此問題的方法,但已經幹了。我希望我能在這裏找到一些幫助。正如標題所示,python無法識別已在我的PYTHONPATH
中設置的模塊。Python無法識別由PYTHONPATH設置的模塊
我目前正在對具有下列整體結構的一個項目:
base
├── util
│ └── logging_utility.py
└── project
└── app
├── config.py
└── runner.py
這是在Python 3.5通過所謂venv_1
虛擬環境中執行。我使用運行El Capitan的Mac。
:
我runner.py
腳本中使用下面的import語句調用logging_utility
。
執行的時候,我收到此錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'util.logging_utility'
我從base
級目錄的終端運行此。我使用下面的命令來調用腳本:
PYTHONPATH=$HOME/base VIRTUAL_ENV=$HOME/.virtualenvs/venv_1 PATH=$VIRTUAL_ENV/bin:$PATH $HOME/.virtualenvs/venv_1/bin/python -- project/app/runner.py
現在,我已經嘗試通過打印出我的env
以及sys.path
調試此。在這兩種情況下,base
目錄都顯示在路徑中。那麼爲什麼我會收到這個錯誤呢?
我也嘗試更新import語句from base.util.logging_utility import method
使我有以下錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'base'
任何想法,爲什麼發生這種情況,我該如何糾正呢?
謝謝!
UPDATE
感謝Billy和Moinuddin Quadri其建議解決這個問題。由於某些原因,我仍然需要添加__init__.py
文件。儘管python 3.3+支持隱式導入,但看起來仍然是需要的。這解決了這個問題。
如何安裝Python的了?通過Python桌面安裝程序或Anaconda? –
把一個空的'__init__。py'文件放在你的'util','project'和'app'目錄中,使它們成爲Python包。 – Billy
@ÉbeIsaac它使用Homebrew安裝。 – Marto