Psycopg2 是用 Python 编写的中最受欢迎的 PostgreSQL 数据库适配器。它的主要功能是完整实现 Python DB API 2.0 规范和线程安全 (多个线程可以共享相同的连接)。它是为大量多线程应用程序设计的, 它创建和销毁大量游标, 并生成大量并发 "INSERT" 或 "UPDATE"。
Psycopg 2 主要采用 C 作为 libpq 包装器, 既高效又安全。它的特点是客户端和服务器端使用用游标,异步通信和通知以及支持 "COPY TO/COPY FROM"。许多 Python 类型都是受支持的, 并适合于匹配 PostgreSQL 数据类型;由于灵活的对象适应系统, 适应性可以扩展和定制。
Psycopg 2 对 Unicode 和 Python 3 友好。
操作系统:Windows 7
软件环境:Python 3.3,Visual Studio 2010,pip-9.0,setuptools-38.5
1. 首先,下载Windows版的Psycopg2。进入https://pypi.python.org/pypi/psycopg2/ ,在下载文件列表中选择psycopg2-2.7.4-cp33-cp33m-win_amd64.whl (md5, pgp)。注意: “cp33”表示该程序必须使用python3.3编译。
2. 如果你的计算机上安装并配置了pip,请直接参阅第7步。否则,你需要下载并安装pip。进入https://pypi.python.org/pypi/pip ,下载pip-9.0.1.tar.gz (md5, pgp) 。
3. 解压pip-9.0.1.tar.gz (md5, pgp),并进入解压后文件夹,打开控制台,执行命令:
python setup.py install
执行上述命令,如果提示“Fineshed processing dependencies for pip==9.0.1”,则说明安装成功。请直接参阅第6步。
如果报错:ImportError: No module named setuptools,如下图所示:
则需要下载setuptools。进入https://pypi.python.org/pypi/setuptools ,下载setuptools-38.5.1.zip (md5) 。要注意,setuptools-38.5.1支持的Python 版本有2.6、2.7、3.3、3.4和3.5,版本太高或太低,都会导致附录中的问题1。
4. 解压setuptools-38.5.1.zip (md5),进入文件目录,打开控制台,执行命令:
python setup.py install
如果出现如下提示,则安装成功:
5. 重新进入pip-9.0.1.tar.gz (md5, pgp) 解压后的文件夹,打开控制台,执行命令:
python setup.py install
如果出现如下提示,则安装成功:
6. 现在还需要将pip的路径添加到环境变量中。进入Python3.3的安装目录下的Scripts文件夹,以“D:\Program Files (x86)\Python\Python33\Scripts”为例。右击计算机,依次点击属性-高级系统设置-环境变量,选择系统变量中path,点击“编辑“,将上述路径添加至变量值中。
7. 现在进入psycopg2-2.7.4-cp33-cp33m-win_amd64.whl 所在的文件夹,打开控制台,执行命令:
pip install psycopg2-2.7.4-cp33-cp33m-win_amd64.whl install
就可以安装成功了。
问题描述:在安装setuptools时就出出现,出现错误“RuntimeError: Python 3.3 or later is required”
原因:setuptools-38.5.1支持的Python 版本有2.6、2.7、3.3、3.4和3.5。本机上Python版本太低。
解决方法:安装并使用上述版本的Python。
问题描述:使用以”.tar.gz”为后缀的psycopg安装文件安装,解压后进入目录,在控制台执行python setup.py install后 ,出现错误“Error: Unable to find vcvarsall.bat”
原因:计算机上安装的Python的版本和Visual C++ 版本不兼容,导致编译不成功。
计算机上安装的Python环境是用C语言实现的,经VC编译过的可执行程序。而一些Python扩展程序,如psycopg2的安装程序中,也有一些代码是用C语言编写的,需要在安装过程中通过VC编译实现功能。如果计算机上的VC版本与编译Python环境的VC版本不一致,psycopg2的编译成果可能会与Python环境不兼容。所以psycopg2在安装时会检测当前环境下Python版本和VC版本是否一致。不一致就会报错。
解决方法:
1. 保证Python的版本Visual Studio的版本对应。
下面是Python和编译器Visual C++ 以及Visual Studio的对应关系。
Python |
Visual C++ |
Visual Studio |
Python 2.6, 2.7, 3.0, 3.1, 3.2 |
Visual C++ 9.0 |
Visual Studio 2008 |
Python 3.3, 3.4 |
Visual C+ + 10.0 |
Visual Studio 2010 |
Python 3.5,3.6 |
Visual C++ 14.0 |
Visual Studio 2015 |
2. 采用本文介绍的安装程序和安装方法。
附: MSC_VER和Visual C++版本号和Visual Studio版本和vc内部版本号的对应关系
MSC_VER |
Visual C++ |
Visual Studio |
内部版本号 |
1000 |
Visual C++ 4.x |
|
|
1100 |
Visual C++ 5 |
|
|
1200 |
Visual C++ 6 |
|
|
1300 |
Visual C++ .NET |
Visual Studio .NET |
|
1310 |
Visual C++ .NET 2003 |
Visual Studio .NET 2003 |
|
1400 |
Visual C++ 2005 |
Visual Studio 2005 |
8 |
1500 |
Visual C++ 2008 |
Visual Studio 2008 |
9 |
1600 |
Visual C++ 2010 |
Visual Studio 2010 |
10 |
1700 |
Visual C++ 2012 |
Visual Studio 2012 |
11 |
1800 |
Visual C++ 2013 |
Visual studio 2013 |
12 |
1900 |
Visual C++ 2015 |
Visual Studio 2015 |
14 |
1910 |
Visual C++ 2017 |
Visual Studio 2017 |
15 |
参考文献:
[1]云游道士. Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题.
[2] OrhanCinar.
https://stackoverflow.com/questions/2676763/what-version-of-visual-studio-is-python-on-my-computer-compiled-with