簡體   English   中英

從 Python 3.6 中的其他目錄導入其他模塊的導入模塊

[英]Importing modules that import other modules from other directories in Python 3.6

我有一個如下所示的工作目錄:

project
  src
    data
      +secrets.py
      +data.py
    +format.py

我在secrets.py中有名為userpw的變量。

我在data.py中導入變量以連接到數據庫,如下所示:

from secrets import user, pw

這可行,但現在我希望能夠從format.py中運行它:

from data.data import <function_name>

我收到Import Error: cannot import name 'user' from 'secrets'

由於format.pydata.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM