我正在尝试使用 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
提交
取消