首页 > 解决方案 > Python 'No module named' 错误;“包”不是包

问题描述

我正在尝试进行简单的导入并使用 emailage 第三方库。

根据他们的文档,使用他们的库的方法如下:

pip install emailage-official

然后,只需导入:

from emailage.client import EmailageClient

安装与 pip 一起工作正常 - 没有错误。我仔细检查了 emailage 包是否存在于正确的目录中,并且确实存在。

包存在于:

C:\Users\aaron\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\emailage

该文件夹(似乎)具有正确的文件__init__.py以及所有内容。但是,pylint 和命令行解释器都向我抛出了一个“没有名为 'emailage.client' 的模块”;'emailage' 不是一个包' 错误。

我的输出sys.path是:

[... 
'C:\\Users\\aaron\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages'
...
]

所以安装 emailage 的目录是路径的一部分......最后我 pip-installed numpy 只是为了测试它是否正常工作。Numpy 安装到与 emailage 相同的站点包文件夹中,并且在导入时工作正常,所以我被卡住了。

我通常不经常使用 Python,因此将不胜感激。

标签: pythonpython-3.xmodulepip

解决方案


问题在于我的文件的命名

我匆忙命名我的文件emailage.py,然后尝试从emailage.client.

我假设 Python 在检查已安装的第三方库之前查看了我的当前目录并匹配了我正在处理的文件的名称。

重命名我的文件后,一切似乎都正常。

对于遇到类似问题的其他人,请注意命名冲突。有时,最简单的事情让你绊倒的时间最长。


推荐阅读