python - 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,因此将不胜感激。
解决方案
问题在于我的文件的命名。
我匆忙命名我的文件emailage.py
,然后尝试从emailage.client
.
我假设 Python 在检查已安装的第三方库之前查看了我的当前目录并匹配了我正在处理的文件的名称。
重命名我的文件后,一切似乎都正常。
对于遇到类似问题的其他人,请注意命名冲突。有时,最简单的事情让你绊倒的时间最长。
推荐阅读
- javascript - 提高具有通用模式的多个 if 语句的可读性
- c# - 将网页嵌入工业电脑
- javascript - 使用 Python 使用 Thread 在后台运行 javascript
- javascript - 为什么人们说javascript没有二维数组?
- javascript - Vue 将唯一值推送到列表中
- ios - 在 Swift 扩展方法(数组)中使用未声明的类型“元素”
- node.js - Node.js 快速应用和会话管理
- sql - 如何使用 count 和 group by 作为另一个表的条件
- php - 如何通过 Twilio 可编程彩信发送多个图像?(PHP)
- java - 在 Airflow 中设置 DB2