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实现的防DDoS脚本
Feb 08 Python
Python语言编写电脑时间自动同步小工具
Mar 08 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
Python3实现mysql连接和数据框的形成(实例代码)
Jan 17 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
pip install命令安装扩展库整理
Mar 02 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 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下几种删除目录的方法总结
2007/08/19 PHP
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
php读取本地json文件的实例
2018/03/07 PHP
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
js动态切换图片的方法
2015/01/20 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
React组件refs的使用详解
2018/02/09 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
win10 64bit下python NLTK安装教程
2018/09/19 Python
pygame实现打字游戏
2021/02/19 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
加入学生会演讲稿
2014/04/24 职场文书
促销活动总结报告
2014/04/26 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
贷款承诺书
2015/01/20 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
费用申请报告范文
2015/05/15 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
2019年教师入党申请书
2019/06/27 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript