亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖從另一個文件導入一個類,但我的測試失敗了

試圖從另一個文件導入一個類,但我的測試失敗了

GCT1015 2023-05-16 14:36:05
我正在嘗試使用 prettyconf - https://github.com/osantana/prettyconf - 來使用 .env 文件。我創建了一個 config.py 文件并將其放在我的腳本的同一文件夾中。我的 config.py 是這個:from prettyconf import configclass Settings:    ENVIRONMENT = config(        'ENVIRONMENT',        default='dev',        cast=config.option({'dev': 'dev', 'int': 'int', 'prod': 'prod'}),    )    LOG_LEVEL = config('LOG_LEVEL', default='INFO') settings = Settings()在我的腳本中,我以這種方式導入我的 config.py :from cl_uploader.config import settings但是我收到了這個錯誤信息:Traceback (most recent call last):  File "cl_uploader.py", line 7, in <module>    from cl_uploader.config import settings  File "/home/myfolder/Doing/folder/cl_uploader/cl_uploader.py", line 7, in <module>    from cl_uploader.config import settingsModuleNotFoundError: No module named 'cl_uploader.config'; 'cl_uploader' is not a package我試圖更改為這樣的相對路徑:from .config import settings但是我得到了這個錯誤:Traceback (most recent call last):  File "cl_uploader.py", line 7, in <module>    from .config import settingsImportError: attempted relative import with no known parent package但是如果讓這樣的:from config import settings
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

您已經在cl_uploader文件夾中。嘗試 from config import settings

添加__init__.py這個:

import os, sys
sys.path.append(os.path.dirname(os.path.realpath(__file__)))

然后,該目錄中的所有文件都將位于sys.path. 可能需要將文件名更改為cl_config.py以避免沖突。


查看完整回答
反對 回復 2023-05-16
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您的包被調用cl_uploader并且您在該包中有一個模塊cl_uploader。避免這種名稱重復。

默認情況下,如果 python 可以找到模塊或包,python 將首先在當前工作目錄中查找,然后再遍歷其他地方。

因此,當您在cl_uploader文件夾內時,它將拾取cl_uploader模塊而不是包。如果你在外面,它會取走包裹。

總之:重命名cl_uploader.py為其他名稱,一切都會正常工作。


查看完整回答
反對 回復 2023-05-16
  • 2 回答
  • 0 關注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號