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实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
python flask 多对多表查询功能
Jun 25 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
python 多线程中join()的作用
Oct 29 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
Python装饰器详细介绍
Mar 25 Python
python井字棋游戏实现人机对战
Apr 28 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通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
基于javascript的无缝滚动动画1
2020/08/07 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
分享Python字符串关键点
2015/12/13 Python
Apache如何部署django项目
2017/05/21 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
python 发送json数据操作实例分析
2019/10/15 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
python利用faker库批量生成测试数据
2020/10/15 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
精选干货:Java精选笔试题附答案
2014/01/18 面试题
购房委托书
2014/10/15 职场文书
工作保证书怎么写
2015/02/28 职场文书
法制教育讲座心得体会
2016/01/14 职场文书