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代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python如何生成树形图案
Jan 03 Python
Python字典的核心底层原理讲解
Jan 24 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
python aiohttp的使用详解
Jun 20 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
python 获取剪切板内容的两种方法
Nov 28 Python
python文件路径操作方法总结
Dec 21 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
python flask中动态URL规则详解
2019/11/22 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
寒假家长评语大全
2014/04/16 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
公司门卫工作职责
2014/06/28 职场文书
计划生育目标责任书
2015/05/09 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript