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字符串对其居中显示的方法
Jul 11 Python
Python+django实现文件下载
Jan 17 Python
Python算法应用实战之栈详解
Feb 04 Python
Django中Forms的使用代码解析
Feb 10 Python
Python Cookie 读取和保存方法
Dec 28 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
python3实现绘制二维点图
Dec 04 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php自动载入类用法实例分析
2016/06/24 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
讲解Python中的递归函数
2015/04/27 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
Python 类的特殊成员解析
2018/06/20 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
投标单位介绍信
2014/01/09 职场文书
护士在校生自荐信
2014/02/01 职场文书
教师节学生演讲稿
2014/09/03 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
退伍军人感言
2015/08/01 职场文书
小学校园广播稿
2015/08/18 职场文书
oracle索引总结
2021/09/25 Oracle
Python绘制散乱的点构成的图的方法
2022/04/21 Python
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL