AttributeError: partially initialized module 'pymysql' has no attribute 'Con
时间: 2025-06-30 21:18:49 浏览: 6
在使用 `pymysql` 模块时,出现 `AttributeError: partially initialized module 'pymysql' has no attribute 'Con'` 错误通常表明模块未能正确初始化或导入方式存在问题。以下是可能导致该错误的几种常见原因及其解决方案:
### 1. **模块未正确安装**
- 确保 `pymysql` 已通过 `pip` 安装:
```bash
pip install pymysql
```
- 如果已经安装,可以尝试重新安装以修复可能的损坏:
```bash
pip uninstall pymysql
pip install pymysql
```
### 2. **脚本名称与模块名称冲突**
- 如果当前脚本文件名是 `pymysql.py`,Python 会优先加载当前目录下的脚本而不是标准库中的模块,从而导致属性错误。
解决方法:将脚本重命名为其他名称,例如 `test_pymysql.py`。
### 3. **导入方式问题**
- 确保导入 `pymysql` 的方式正确,推荐使用以下方式:
```python
import pymysql
```
或者:
```python
from pymysql import connect
```
- 避免使用不规范的导入方式,如 `import pymysql.connect`,这可能导致无法正确访问模块属性。
### 4. **循环依赖问题**
- 如果项目中存在多个模块相互引用(循环依赖),可能会导致模块初始化失败并抛出类似错误。
解决方法:检查模块之间的导入关系,确保没有不必要的循环引用,并删除不需要的导入语句。
### 5. **代码示例**
- 正确使用 `pymysql` 连接数据库的示例如下:
```python
import pymysql
# 建立数据库连接
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
database='test_db'
)
# 创建游标对象
cursor = connection.cursor()
# 执行SQL查询
cursor.execute("SELECT * FROM test_table")
# 获取查询结果
results = cursor.fetchall()
for row in results:
print(row)
# 关闭游标和连接
cursor.close()
connection.close()
```
### 6. **环境问题**
- 确认 Python 环境是否正确,尤其是在使用虚拟环境的情况下。可以使用以下命令检查当前环境中是否已安装 `pymysql`:
```bash
pip show pymysql
```
- 如果使用的是 Jupyter Notebook 或其他交互式环境,确保其使用的内核与预期一致。
### 7. **IDE 缓存问题**
- 有时 IDE(如 PyCharm、VSCode)可能会缓存旧的模块信息,导致模块导入异常。可以尝试重启 IDE 或清除缓存。
###
阅读全文
相关推荐


















