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 06 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
Python如何在bool函数中取值
Sep 21 Python
python中spy++的使用超详细教程
Jan 29 Python
Python实现位图分割的效果
Nov 20 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
PHP:风雨欲来 路在何方?
2006/10/09 PHP
第二节--PHP5 的对象模型
2006/11/16 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
canvas绘制多边形
2017/02/24 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
详解django.contirb.auth-认证
2018/07/16 Python
Django中的ajax请求
2018/10/19 Python
python安装pil库方法及代码
2019/06/25 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
自我评价的写作规则
2014/01/06 职场文书
小学新教师培训方案
2014/02/03 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
财务工作失误检讨书
2015/02/19 职场文书
会计求职自荐信
2015/03/26 职场文书
跳高加油稿
2015/07/21 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL