我在構建我的python項目時遇到了一些問題。目前它是一堆文件在同一個文件夾中。我試圖把它的結構像測試和python包結構
proj/
__init__.py
foo.py
...
bar/
__init__.py
foobar.py
...
tests/
foo_test.py
foobar_test.py
...
問題是,我不能從內部目錄,從外部目錄導入模塊。這對測試尤其惱人。
我已閱讀關於相對進口的PEP 328和關於從主模塊進行的相對進口的PEP 366。但是這兩種方法都需要基礎包裝在我的PYTHONPATH中。事實上,我得到以下錯誤
ValueError: Attempted relative import in non-package.
所以我添加的測試文件
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
我仍然得到同樣的錯誤的頂部以下樣板代碼。什麼是正確的方式來
- 結構的包,完成測試,並
- 增加的基本目錄,以允許進口的路徑?
編輯作爲評論的要求,我想補充一個例子導入失敗
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
from ..foo import Foo
可以顯示導入失敗的示例嗎? –
此外,請爲您的'PYTHONPATH' –
'echo $ PYTHONPATH'包含值現在只是空的。 – Andrea