Python3安装psycopy2以及遇到问题解决方法
作者:str999_cn 发布时间:2022-12-19 15:41:26
事先在网上搜索了一大圈,头都大了,看到那么多文章写道在python里安装psycopg2的各种坑和各种麻烦,各种不成功。搜索了一下午,索性外出放松。晚饭后,又继续上psycopg2官网(http://initd.org/psycopg/docs/install.html)看了一些有关install的资料,感觉还是麻烦。最后上这个网(https://pypi.python.org/pypi/psycopg2/)上,准备用wheel的方式进行安装。
不过在此网页上突然瞟到一句:
翻译过来就是:“如果你的pip版本支持wheel包,那么可以仅仅允许pip命令即可安装一个二进制的Psycopg版本,包括所有依赖项”。心中窃喜。
但是我windows7里安装的python一直没有设置环境变量,一直用的Anaconda下面的一个spyder图形编程界面,所以在命令行下还不能直接使用python。现在首先在环境变量的path里添加“C:\Users\Tom\Anaconda3”,这个是Anaconda3在电脑里的安装目录(因为我的python是通过Anaconda安装的)。之后在命令行运行pip,发现还是不行,查看后发现pip位于Anaconda文件夹下面的Scripts文件夹下。所以还要添加“C:\Users\Tom\Anaconda3\Scripts”到环境变量,之后就可以在命令行里运行pip命令了。
至此,psycopg2成功安装。
再来看spyder中python程序操作PostgreSQL数据库的代码和运行结果:
上述python代码连接到articles数据库,在其中创建了一个叫做Urls的数据表,该表有2个字段,第一个是字段ID,第二个是字段URL。我们打开pgAdmin4,在其中,发现articles数据库里已经出现了Urls数据表,且包含刚刚创建的2个字段。见下表:
------------------------------------------------------------------------------------
如果不采用Anaconda的安装包,而直接使用的Python.org官网上的安装包,安装完成后是没有pip.exe文件的。需要在python窗口另外执行以下命令,然后在Scripts文件夹下即能看到刚刚生产的几个pip文件。
注意,pip3文件不是最新版本,直接下载会出错,需要对pip首先进行更新。但更新的过程中可能会出错,连续多尝试几次,最后应该会成功。
更新之后,即可按照原先的方法进行下载了。
内容扩展:
Python——使用psycopy2操作PostgreSQL
Psycopg2与其他实现了DB API 2.0协议的其他数据库用户基本一致。当执行包含特殊字符的SQL语句的时候,传递数据用来填充查询占位符, 让Psycopg执行正确的转换(不再有SQL注入)
# encoding: utf-8
__author__ = 'chenlong'
import psycopg2
from config import ConfigServer
class PGSQLdb:
def __init__(self):
self.tryconnect()
def tryconnect(self):
# 连接到数据库
self.con=psycopg2.connect(database = ConfigServer['pg_db'],
user = ConfigServer['pg_user'],
password = ConfigServer['pg_pass'],
host= ConfigServer['pg_host'],
port = ConfigServer['pg_port'])
# 打开一个光标,用来执行数据库操作
self.cur=self.con.cursor()
def tryexecute(self,sqlstr):
# 执行命令
self.cur.execute(sqlstr)
# 使改变永久存入数据库
self.con.commit()
def tryexecute2(self,sqlstr,data):
# 传递数据用来填充查询占位符, 让Psycopg执行正确的转换(不再有SQL注入)
# 第一个参数:包含占位符的SQL语句,如:"INSERT INTO test (num, data) VALUES (%s, %s)"
# 第二个参数:与占位符对应的值,如: (100, "abc'def")
self.cur.execute(sqlstr,data)
self.con.commit()
def tryclose(self):
# 关闭光标
self.cur.close()
# 关闭连接
self.con.close()


猜你喜欢
- 一、项目说明在日常生活中,我们经常会存取一些朋友们的丑照,在这个项目中,我们以萌萌哒的熊猫头作为背景,然后试着在背景图上加入朋友们的照片。效
- 使用wordcloud模块,生成云图,测试文本为:Betty Botter bought some butter but she said
- 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。先看Python官方文档中对这几个内置函数的描述:b
- 本文实例讲述了python使用cPickle模块序列化的方法,分享给大家供大家参考。具体方法如下:import cPickledata1 =
- 本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下1.待拼接的图像2. 基于SIFT特征点和RANSAC方法得
- 集合创建集合有两种方式:第一种:T = {11,111,"11"}print(T)# {'11', 11
- 导语Hey!下午好,我是木木子,关注我,一起玩游戏吧~微信小游戏很久之前刮起了一股切水果热潮,还记得嘛?我记得纯粹是因为这个游戏家里的孩子依
- 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa
- 在使用"get"时,抓取的页面最后加上编码类型 <% 服务器端:servletactioncontext.getr
- 说下整体思路1、服务器安装ffmpeg2、使用ffmpeg -i 指令来转换amr为mp3格式(这个到时候写在PHP代码中,使用exec函数
- 本文实例讲述了django框架cookie和session用法。分享给大家供大家参考,具体如下:首先知道http协议http协议它是无状态的
- threading.Event机制类似于一个线程向其它多个线程发号施令的模式,其它线程都会持有一个threading.Event的对象,这些
- 天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花
- 本文实例讲述了Python实现分割文件及合并文件的方法。分享给大家供大家参考。具体如下:分割文件split.py如下:#!/usr/bin/
- BluePrint是一个非常成熟也非常流行的CSS框架,很多网站和wordpress基于Blueprint搭建前端结构。最近,bluepri
- 我在使用python读取几十万行的文件中的数据,并构造字典,列表等数据结构时,再访问字典,列表时,一般都会出现内存不够的问题,然后只能循环读
- 1.遍历列表需要对列表中的每个元素都执行相同的操作时,可使用for 循环:magicians = ['alice','
- 我就废话不多说了,直接上代码吧!import cv2import osdef save_img(): video_path =
- 项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地。当然我们也可以通过一些处理来修
- Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作。本文将会