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的词法分析与语法分析
May 18 Python
python 写入csv乱码问题解决方法
Oct 23 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Python输入二维数组方法
Apr 13 Python
python 实现登录网页的操作方法
May 11 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
在python image 中实现安装中文字体
May 16 Python
查看keras的默认backend实现方式
Jun 19 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
JQuery 常用操作代码
2010/03/14 Javascript
javascript调试说明
2010/06/07 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
package.json文件配置详解
2017/06/15 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
python定时关机小脚本
2018/06/20 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
python3多线程知识点总结
2019/09/26 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
质检部职责
2013/12/28 职场文书
个人综合鉴定材料
2014/05/23 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang