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 11 Python
Python使用django搭建web开发环境
Jun 09 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
python实现log日志的示例代码
Apr 28 Python
python模块smtplib学习
May 22 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
flask应用部署到服务器的方法
Jul 12 Python
Python字典底层实现原理详解
Dec 18 Python
python神经网络编程实现手写数字识别
May 27 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
分享7个 Python 实战项目练习
Mar 03 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强制更新图片缓存的方法
2015/02/11 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
通过DOM脚本去设置样式信息
2010/09/19 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python怎么判断素数
2020/07/01 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
南京某软件公司的.net面试题
2015/11/30 面试题
企业统计员岗位职责
2013/12/13 职场文书
劳动模范事迹材料
2014/01/19 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
一年级数学教学反思
2014/02/01 职场文书
电子信息专业自荐书
2014/02/04 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
健康教育评估方案
2014/05/25 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
付款证明格式范文
2015/06/19 职场文书
初中班主任培训心得体会
2016/01/07 职场文书