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中logging模块的用法实例
Sep 29 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
python实现报表自动化详解
Nov 16 Python
python机器学习之神经网络(一)
Dec 20 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
python中import与from方法总结(推荐)
Mar 21 Python
python flask安装和命令详解
Apr 02 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
用Python进行栅格数据的分区统计和批量提取
May 27 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&MYSQL留言板源码
2020/07/19 PHP
php时间不正确的解决方法
2008/04/09 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
twig模板常用语句实例小结
2016/02/04 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
php格式化时间戳
2016/12/17 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
js简单时间比较的方法
2016/08/02 Javascript
bootstrap table实例详解
2017/01/06 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
详解Python字符串对象的实现
2015/12/24 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
门卫岗位安全职责
2013/12/13 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
信息员培训方案
2014/06/12 职场文书
经济国贸专业求职信
2014/06/18 职场文书
亮剑观后感
2015/06/05 职场文书