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根据出生年份简单计算生肖的方法
Mar 27 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python中requests库session对象的妙用详解
Oct 30 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python和JavaScript哪个容易上手
Jun 23 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
python tkinter模块的简单使用
Apr 07 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
python面向对象版学生信息管理系统
Jun 24 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
JavaScript简介
2015/02/15 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
python访问系统环境变量的方法
2015/04/29 Python
用Python写冒泡排序代码
2016/04/12 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
有关Python的22个编程技巧
2018/08/29 Python
python元组的概念知识点
2019/11/19 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
应届生体育教师自荐信
2013/10/03 职场文书
优秀毕业生自荐信范文
2014/01/01 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
孟佩杰观后感
2015/06/17 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书