[英]Importing a file from a different directory in Python
這是我的兩個文件夾結構:
A/B/C/D/E/F.py
A/B/C/G/H/I/test.py
我的test.py
想要導入F.py
的類。 我已經將根目錄設置為C
我試過了:
from C.D.F import FClassname
這是行不通的。 消息是
ImportError: No module named C.D.F
我確保所有目錄都有__init__.py
文件。 我不想向test.py
添加任何代碼。 我想在__init__.py
添加代碼,以便將其應用於我將要編寫的所有將來的測試文件。
在目錄H的__init__.py
中,我編寫了以下代碼:
import os
import sys
root = os.path.realpath(os.path.join(os.path.dirname(__file__), '../../'))
sys.path.append(root)
我要去哪里錯了?
在C
使用此文件結構。
.
|-- D
| |-- E
| | |-- F.py
| | |-- __init__.py
| | `-- __pycache__
| | |-- F.cpython-34.pyc
| | `-- __init__.cpython-34.pyc
| |-- __init__.py
| `-- __pycache__
| `-- __init__.cpython-34.pyc
`-- G
|-- H
| |-- I
| | `-- foo.py
| `-- __init__.py
`-- __init__.py
foo.py
可能是
from D.E import F
F.foo()
使用PYTHONPATH
運行它,包括當前目錄( .
),它將是C
$ PYTHONPATH=. python3.4 G/H/I/foo.py
輸出:
foo
你可以試試看
C, D, E
創建__init__.py
然后在您的test.py
import sys
sys.path.insert(0, '/path/to/C')
from C.D.E.F import FClassname
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.