安装的是redis新版本,但导入的时候一直显示是旧版本

使用grep -r "except socket.error, e:" /home/by/PyCharmMiscProject/.venv/lib/python3.12/site-packages/redis/,定位错误文件,并进行问题分析:

  1. pip缓存了错误的包版本

  2. 从非官方源安装了修改过的包

  3. 本地有残留的旧版本文件

解决方法:卸载之前的redis并重新从官网下载

1、开始强制删除原先的文件和缓存,但首先要确保自己所处的环境是正确的:

python 复制代码
# 强制卸载redis包
pip uninstall redis -y

# 手动删除残留文件(重要!)
rm -rf /home/by/PyCharmMiscProject/.venv/lib/python3.12/site-packages/redis*
rm -rf /home/by/PyCharmMiscProject/.venv/lib/python3.12/site-packages/Redis*
# 清理pip缓存
pip cache purge
# 使用官方PyPI源,指定最新版本
pip install redis==7.0.0 --index-url https://pypi.org/simple --no-cache-dir

2、使用以下代码进行验证是否还存在问题:

python 复制代码
#!/usr/bin/env python3
print("Python版本检查...")
import sys

print(f"Python版本: {sys.version}")

print("\n尝试导入redis...")
try:
    import redis

    print(f"✓ 成功导入redis,版本: {redis.__version__}")

    # 测试基本功能
    r = redis.Redis(host='localhost', port=6379, socket_connect_timeout=2)
    try:
        response = r.ping()
        print(f"✓ Redis连接测试: {response}")
    except redis.ConnectionError as e:
        print(f"⚠️  Redis服务未连接: {e}")
        print("请确保Redis服务正在运行: redis-server")

except Exception as e:
    print(f"✗ 导入失败: {type(e).__name__}: {e}")

3、写个测试代码,看下redis能不能连通

python 复制代码
import redis
import json

# 1. 连接到Redis服务器
# 如果Redis有密码,需添加参数 password='yourpassword'
r = redis.Redis(host='localhost', port=6379, db=0)

# 2. 准备一个示例字典
user_info = {
    'id': 1001,
    'name': '张三',
    'age': 28,
    'email': 'zhangsan@example.com'
}

# 3. 将字典序列化为JSON字符串并存储
json_str = json.dumps(user_info, ensure_ascii=False)  # ensure_ascii确保中文正常
r.set('user:1001', json_str)
print("字典已存储。")

# 4. 读取并还原数据
json_data_from_redis = r.get('user:1001')
if json_data_from_redis:
    user_data = json.loads(json_data_from_redis)
    print(f"读取到的数据:{user_data}")
相关推荐
Re.不晚5 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
老邓计算机毕设5 小时前
SSM智慧社区信息化服务平台4v5hv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·智慧社区、·信息化平台
麦聪聊数据5 小时前
为何通用堡垒机无法在数据库运维中实现精准风控?
数据库·sql·安全·低代码·架构
2301_790300966 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919106 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
亓才孓6 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
m0_466525296 小时前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全
爱学习的阿磊7 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
摇滚侠7 小时前
阿里云安装的 Redis 在什么位置,如何找到 Redis 的安装位置
redis·阿里云·云计算
枷锁—sha7 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全