我正在嘗試使用 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
以避免沖突。

呼如林
TA貢獻1798條經驗 獲得超3個贊
您的包被調用cl_uploader
并且您在該包中有一個模塊cl_uploader
。避免這種名稱重復。
默認情況下,如果 python 可以找到模塊或包,python 將首先在當前工作目錄中查找,然后再遍歷其他地方。
因此,當您在cl_uploader
文件夾內時,它將拾取cl_uploader
模塊而不是包。如果你在外面,它會取走包裹。
總之:重命名cl_uploader.py
為其他名稱,一切都會正常工作。
添加回答
舉報
0/150
提交
取消