[英]Importing modules that import other modules from other directories in Python 3.6
我有一個如下所示的工作目錄:
project
src
data
+secrets.py
+data.py
+format.py
我在secrets.py
中有名為user
和pw
的變量。
我在data.py
中導入變量以連接到數據庫,如下所示:
from secrets import user, pw
這可行,但現在我希望能夠從format.py
中運行它:
from data.data import <function_name>
我收到Import Error: cannot import name 'user' from 'secrets'
由於format.py
與data.py
不在同一目錄中,因此導入中斷,因為它找不到secrets.py
。 如果我用這個更新data.py
:
from data.secrets import user, pw
我可以成功運行format.py
。 但這會破壞data.py
!
我覺得我只是從一開始就完全錯誤地構建了我的項目。 有沒有更好的方法來做到這一點或修復導入錯誤的方法?
我嘗試使用..
的相對導入並明確使用src.data.secrets
但這仍然會破壞data.py
嘗試from.secrets import user, pw
。 我試過了,它有效。 點表示您正在從當前目錄導入模塊
這應該有效。
from importlib import import_module
format = import_module("../format.py")
根據文檔,您可能必須使用並且可能應該使用。
from importlib import import_module
format = exec_module(create_module(find_spec("../format.py)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.