何以解忧-解决python问题的辛酸泪

文章目录

  • 场景
  • 失败步骤
    • 失败步骤一
    • 失败步骤二
    • 失败步骤三
    • 失败步骤四
    • 失败步骤五
  • 。。。
  • 替换成pgdb包
  • 替换成pg8000
  • 结束语

场景

python开发web接口操作数据库,包括mysql、mongodb、postgresql。mysql和mongodb都顺利启动,但是postgresql的时候打包了psycopg2,启动的时候无法找到psycopg2_init_.py

代码如下

from flask import Blueprintfrom flask import Blueprint, jsonify, request
import psycopg2
from psycopg2.extras import RealDictCursorpostgresql_bp = Blueprint('postgresql', __name__)DB_CONFIG = {'dbname': 'area','user': 'postgres','password': 'postgres','host': 'localhost','port': '5432'
}def get_db_connection():try:conn = psycopg2.connect(**DB_CONFIG)return connexcept Exception as e:print(f"数据库连接错误: {e}")return None

失败步骤

失败步骤一

1,重装postgresql,配置环境变量,
2,重启window后执行psql --version,能否准确显示版本号17.2
3,查阅可能是没有配置lib文件夹到环境变量,
4,新增lib文件配置,重启window
上面的步骤完成后,依旧无法解决这个问题

失败步骤二

怀疑是windows插件问题
2015-2022: https://aka.ms/vs/17/release/vc_redist.x64.exe
2013: https://aka.ms/highdpimfc2013x64enu

安装后无法解决

失败步骤三

安装通过visual studio安装桌面C++

安装后依旧无法解决

失败步骤四

采用集成的包代替,pip uninstall psycopg2-binary,

安装完后,依旧无法解决

失败步骤五

采用conda

# 创建新环境
conda create -n pgenv python=3.9
# 安装 psycopg2
conda install psycopg2

安装后测试,无法解决

。。。

哭晕在厕所,折腾了一个两个多小时了,脑壳疼。
何以解忧。。。

替换成pgdb包

GitHub上有同学是用pgdb包,所以打算试试

先卸载安装的包

pip uninstall psycopg2
pip uninstall psycopg2-binary

换pgdb包

from flask import Blueprint, jsonify, request
import pgdbpostgresql_bp = Blueprint('postgresql', __name__)# 启动postgresql,net start postgresql-x64-17.2
# 停止postgresql,net stop postgresql-x64-17.2
# 配置环境 D:\app\postgresql17、D:\app\postgresql17\bin、D:\app\postgresql17\lib
DB_CONFIG = {#'dbname': 'area', # psycopg2的使用方式'database': 'area','user': 'postgres','password': 'postgres','host': 'localhost',# 'port': '5432' # psycopg2的使用方式'port': 5432
}# psycopg2的使用方式
# def get_db_connection():
#     try:
#         conn = psycopg2.connect(**DB_CONFIG)
#         return conn
#     except Exception as e:
#         print(f"数据库连接错误: {e}")
#         return Nonedef get_db_connection():try:# pgdb 的连接方式略有不同conn = pgdb.connect(**DB_CONFIG)return connexcept Exception as e:print(f"数据库连接错误: {e}")return None 

启动后发现还是包含了psycopg2,最后清理所有的缓存,清理了虚拟环境,然后重启,依旧报错。
看报错原来pgdb.py包含了psycopg2,导致报错出现DLL load failed while importing _psycopg: 找不到指定的模块。

。。。

于是
尝试降低版本,看是否可以逃脱,连续降三个版本,发现加载信息是Successfully installed pgdb-0.0.7a0 psycopg2-2.9.10,逃不掉的感觉,真要崩溃。最后降低到0.0.1版本,虽然没有显示加载 psycopg,但是打开pgdb还是有这个包

替换成pg8000

一把过

from flask import Blueprint, jsonify, request
import pg8000postgresql_bp = Blueprint('postgresql', __name__)# 启动postgresql,net start postgresql-x64-17.2
# 停止postgresql,net stop postgresql-x64-17.2
# 配置环境 D:\app\postgresql17、D:\app\postgresql17\bin、D:\app\postgresql17\lib
DB_CONFIG = {#'dbname': 'area', # psycopg2的使用方式'database': 'area','user': 'postgres','password': 'postgres','host': 'localhost',# 'port': '5432' # psycopg2的使用方式'port': 5432
}# psycopg2的使用方式
# def get_db_connection():
#     try:
#         conn = psycopg2.connect(**DB_CONFIG)
#         return conn
#     except Exception as e:
#         print(f"数据库连接错误: {e}")
#         return Nonedef get_db_connection():try:# pgdb 的连接方式略有不同conn = pg8000.connect(**DB_CONFIG)return connexcept Exception as e:print(f"数据库连接错误: {e}")return None 

结束语

吸一口冬天的冷风,我心底也是如此

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477033.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之树与二叉树

华子目录 1.树和二叉树的定义1.1树的定义1.2树的基本术语1.3线性结构和树结构1.4二叉树的定义 2.二叉树的性质和存储结构2.1二叉树的性质2.2二叉树的存储结构2.2.1顺序存储2.2.2链式存储 2.3遍历二叉树2.4大作业:二叉树的基本操作2.4.1代码思路(仅供参考…

MYSQL——多表设计以及数据库中三种关系模型

大致介绍数据库中三种关系模型 一对多(1:N) 定义: 一个实体可以与另一个实体的多个实例相关联,而后者只能与前者的一个实例相关联。 例子: 学生和课程的关系。 学生(1):每个学生…

企业网页设计的安全与数据保护

企业网页设计不仅要考虑美观和功能性,安全与数据保护也是重中之重。在这个信息爆炸的时代,用户的数据隐私和安全问题日益凸显,企业必须采取多种措施来保障用户的信息安全。 首先,**SSL加密**是基础中的基础。通过使用SSL证书&…

观察者模式和订阅模式

观察者模式和订阅模式在概念上是相似的,它们都涉及到一个对象(通常称为“主题”或“发布者”)和多个依赖对象(称为“观察者”或“订阅者”)之间的关系。然而,尽管它们有相似之处,但在某些方面也…

logback动态获取nacos配置

文章目录 前言一、整体思路二、使用bootstrap.yml三、增加环境变量四、pom文件五、logback-spring.xml更改总结 前言 主要是logback动态获取nacos的配置信息,结尾完整代码 项目springcloudnacosplumelog,使用的时候、特别是部署的时候,需要改环境&#…

工具学习_Docker

0. Docker 简介 Docker 是一个开源平台,旨在帮助开发者构建、运行和交付应用程序。它通过容器化技术将应用程序及其所有依赖项打包在一个标准化的单元(即容器)中,使得应用程序在任何环境中都能保持一致的运行效果。Docker 提供了…

基础知识学习上

基础知识学习上 1.关于print1.1 format 方法 2.运算符2.1 除法运算2.2 幂运算 3.条件控制语句3.1 if语句3.2 循环语句 4.复杂数据类型4.1列表4.2字典4.3字符串 5.函数 1.关于print 分隔符 print(1, 2, 3, 4, sep-) print(1, 2, 3, 4, sep。)结尾符 print(1, 2, 3, 4, end?) pr…

无监督跨域目标检测的语义一致性知识转移

Semantic consistency knowledge transfer for unsupervised cross domain object detection 无监督跨域目标检测的语义一致性知识转移 作者: Zichong Chen, Ziying Xia, Xiaochen Li, Junhao Shi, Nyima Tashi, Jian Cheng 所属机构: 电子科技大学信息与通信工程学院&…

AI智能稿件排版系统订单管理系统

在现代制造业和服务行业中,高效的生产流程和精确的订单管理是企业保持竞争优势的核心要素。AI智能稿件排版系统和订单管理系统作为一体化解决方案,以其强大的自动化能力和智能化技术,帮助企业实现排版效率提升、数据格式兼容性增强和生产流程…

Android Google登录接入

官方文献: 1、前期准备: https://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hlzh-cnhttps://developers.google.cn/identity/sign-in/android/legacy-start-integrating?hlzh-cn 2、具体开发: 新版 Googl…

论文浅尝 | MindMap:知识图谱提示激发大型语言模型中的思维图(ACL2024)

笔记整理:和东顺,天津大学硕士,研究方向为软件缺陷分析 论文链接:https://aclanthology.org/2024.acl-long.558/ 发表会议:ACL 2024 1. 动机 虽然大语言模型(LLMs)已经在自然语言理解和生成任务…

Spring Cloud Data Flow快速入门Demo

1.什么是Spring Cloud Data Flow? Spring Cloud Data Flow 是一个用于构建和编排数据处理流水线的云原生框架。它提供了一种简化的方式来定义、部署和管理数据处理任务和流应用程序。以下是一些关键特性和组件: 关键特性 流处理: 支持实时数…

C# .NET环境下调用ONNX格式YOLOV8模型问题总结

我的环境是: Visual Studio: 2019 显卡: 一、遇到问题 1、EntryPointNotFoundException:无法在DLL“onnxruntime”中找到名为“OrtGetApiBase”的入口点。差了下原因,入口点是启动项中的问题。 原因:之前用yolov7时安装的版本在C…

量子感知机

神经网络类似于人类大脑,是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题,是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…

AI Large Language Model

AI 的 Large Language model LLM , 大语言模型: 是AI的模型,专门设计用来处理自然语言相关任务。它们通过深度学习和庞大的训练数据集,在理解和生成自然语言文本方面表现出色。常见的 LLM 包括 OpenAI 的 GPT 系列、Google 的 PaLM 和 Meta…

运维团队3D可视化智能机房管理方案

随着信息技术的飞速发展,机房作为信息技术基础设施的核心部分,其管理效率与可视化程度对运维团队的工作质量有着直接影响。本文将介绍一种结合3D可视化技术的机房管理方案,为运维团队提供一种新的视角和工具,以提升机房管理的效率…

CKA认证 | Day2 K8s内部监控与日志

第三章 Kubernetes监控与日志 1、查看集群资源状态 在 Kubernetes 集群中,查看集群资源状态和组件状态是非常重要的操作。以下是一些常用的命令和解释,帮助你更好地管理和监控 Kubernetes 集群。 1.1 查看master组件状态 Kubernetes 的 Master 组件包…

111 - Lecture 10

File I/O and GUI with JavaFX 文件输入/输出与JavaFX图形用户界面 一、Overview 1. File I/O (1) learning Java File I/O mechanism (2) writing into and reading from a file 使用文件I/O进行数据读取和…

分享一下arr的意义(c基础)(必看)(牢记)

arr 即数组名 一般指数组首元素地址 在两种情况下不是 1:sizeof(arr) arr指整个数组简单讲解一下strlen与sizeof(c基础)_strzeof在c语言中什么意思-CSDN博客 2:printf("%p",&…

大数据基于Spring Boot的化妆品推荐系统的设计与实现

摘 要 随着大数据时代的到来,人们对于个性化服务的需求越来越高。化妆品推荐系统作为一个认知智能模型段,在为消费者提供更好的购物体验方面发挥了重要作用。本研究基于大数据技术设计了一个高效准确的化妆品推荐系统。通过对海量数据的分析和处理&…