Python3环境下使用Wheel安装psycopg2及环境配置详解

拾光
拾光
发布时间:2026-10-13| 2人浏览过
原创

本文详细记录了在Windows 7环境下,针对Python3安装psycopg2时遇到的常见坑点。通过官方文档指引,采用Wheel二进制包方式简化安装流程。重点解决了Anaconda环境下pip命令不可用的环境变量配置问题,并补充了非Anaconda版本Python中pip缺失的修复方案及SQL注入防护机制说明。

psycopg2安装困境与Wheel方案选择

此前在网络搜索了大量关于在Python中安装psycopg2的资料,发现诸多文章提及安装过程中的各种障碍与失败案例,令人困扰。经过一下午的尝试未果后,决定稍作休息。晚餐后,重新查阅psycopg2官网(http://initd.org/psycopg/docs/install.html)的安装指南,仍觉得步骤繁琐。最终访问PyPI仓库(https://pypi.python.org/pypi/psycopg2/),决定尝试通过Wheel方式进行安装。

在该网页上注意到一条关键提示:

其含义为:“若你的pip版本支持Wheel包,则只需使用pip命令即可安装包含所有依赖项的二进制版Psycopg”。这一发现令人振奋。

Anaconda环境下的pip路径配置

然而,由于Windows 7系统中安装的Python未配置环境变量,一直依赖Anaconda下的Spyder图形界面进行编程,导致命令行无法直接调用python。首先需在系统环境变量的Path中添加“C:\Users\Tom\Anaconda3”,即Anaconda3的安装目录(因Python通过Anaconda安装)。随后在命令行运行pip,发现仍无法识别,检查后发现pip位于Anaconda文件夹下的Scripts目录中。因此,还需将“C:\Users\Tom\Anaconda3\Scripts”添加到环境变量,此后即可在命令行中正常使用pip命令。

至此,psycopg2安装成功。

接下来查看在Spyder中操作PostgreSQL数据库的Python代码及其运行结果:

上述Python代码连接至articles数据库,并创建名为Urls的数据表,该表包含两个字段:ID和URL。打开pgAdmin4查看,发现articles数据库中确实出现了Urls数据表,且包含刚才创建的两个字段。具体见下表:

 

------------------------------------------------------------------------------------

非Anaconda版本Python的pip缺失处理

若不使用Anaconda安装包,而是直接安装Python.org官网提供的安装包,安装完成后将不存在pip.exe文件。此时需在Python窗口中执行特定命令,随后在Scripts文件夹下即可看到新生成的几个pip相关文件。

 

需要注意的是,pip3文件并非最新版本,直接下载可能导致错误,需先对pip进行更新。但在更新过程中可能会遇到错误,建议多次尝试,最终通常会成功。

更新完成后,即可按照之前的方法继续下载。

内容扩展:

Python——使用psycopg2操作PostgreSQL

psycopg2安全特性与DB API兼容

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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。