Python3安装psycopy2以及遇到问题解决方法


Posted in Python onJuly 03, 2019

事先在网上搜索了一大圈,头都大了,看到那么多文章写道在python里安装psycopg2的各种坑和各种麻烦,各种不成功。搜索了一下午,索性外出放松。晚饭后,又继续上psycopg2官网(http://initd.org/psycopg/docs/install.html)看了一些有关install的资料,感觉还是麻烦。最后上这个网(https://pypi.python.org/pypi/psycopg2/)上,准备用wheel的方式进行安装。

不过在此网页上突然瞟到一句:

Python3安装psycopy2以及遇到问题解决方法

翻译过来就是:“如果你的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命令了。

Python3安装psycopy2以及遇到问题解决方法

Python3安装psycopy2以及遇到问题解决方法

Python3安装psycopy2以及遇到问题解决方法

Python3安装psycopy2以及遇到问题解决方法

至此,psycopg2成功安装。

再来看spyder中python程序操作PostgreSQL数据库的代码和运行结果:

Python3安装psycopy2以及遇到问题解决方法

        上述python代码连接到articles数据库,在其中创建了一个叫做Urls的数据表,该表有2个字段,第一个是字段ID,第二个是字段URL。我们打开pgAdmin4,在其中,发现articles数据库里已经出现了Urls数据表,且包含刚刚创建的2个字段。见下表:

Python3安装psycopy2以及遇到问题解决方法

 

------------------------------------------------------------------------------------

如果不采用Anaconda的安装包,而直接使用的Python.org官网上的安装包,安装完成后是没有pip.exe文件的。需要在python窗口另外执行以下命令,然后在Scripts文件夹下即能看到刚刚生产的几个pip文件。

Python3安装psycopy2以及遇到问题解决方法

Python3安装psycopy2以及遇到问题解决方法

 Python3安装psycopy2以及遇到问题解决方法

注意,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()
Python 相关文章推荐
Python使用Supervisor来管理进程的方法
May 28 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
python3学习笔记之多进程分布式小例子
Feb 13 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
python读取各种文件数据方法解析
Dec 29 Python
python3正则提取字符串里的中文实例
Jan 31 Python
Python内置random模块生成随机数的方法
May 31 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
python和php哪个容易学
Jun 19 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
python调试神器PySnooper的使用
Jul 03 #Python
详解DeBug Python神级工具PySnooper
Jul 03 #Python
使用python来调用CAN通讯的DLL实现方法
Jul 03 #Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 #Python
在cmd中查看python的安装路径方法
Jul 03 #Python
python动态进度条的实现代码
Jul 03 #Python
OpenCV 轮廓检测的实现方法
Jul 03 #Python
You might like
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
js中的前绑定和后绑定详解
2013/08/01 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
nuxt.js 缓存实践
2018/06/25 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
SQL Server面试题
2016/10/17 面试题
《最大的“书”》教学反思
2014/02/14 职场文书
房屋转让协议书范本
2014/04/11 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
创业计划书之烤红薯
2019/09/26 职场文书
golang import自定义包方式
2021/04/29 Golang
golang slice元素去重操作
2021/04/30 Golang