如何在Windows 7上安装psycopg2

4
我尝试了 pip install psycopg2,但是出现了以下错误:

错误:

(ScrapeProj) C:\Users\e2sn7cy\Documents\GitHub\scraper>pip install psycopg2==2.5.4
Collecting psycopg2==2.5.4
  Using cached psycopg2-2.5.4.tar.gz
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info\psycopg2.egg-info
    writing pip-egg-info\psycopg2.egg-info\PKG-INFO
    writing top-level names to pip-egg-info\psycopg2.egg-info\top_level.txt
    writing dependency_links to pip-egg-info\psycopg2.egg-info\dependency_links.txt
    writing manifest file 'pip-egg-info\psycopg2.egg-info\SOURCES.txt'
    warning: manifest_maker: standard file '-c' not found

    Error: pg_config executable not found.

    Please add the directory containing pg_config to the PATH
    or specify the full executable path with the option:

        python setup.py build_ext --pg-config /path/to/pg_config build ...

    or with the pg_config option in 'setup.cfg'.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:\users\e2sn7cy\appdata\local\temp\pi
p-build-joij3x\psycopg2

然后我尝试使用 easy_install,通过从 Stickpole 下载 .exe 文件,但是我得到了以下错误:
(ScrapeProj) C:\Users\e2sn7cy\Envs\ScrapeProj\Scripts>easy_install psycopg2-2.6.1.win-amd64-py2.7-pg9
.4.4-release.exe
Processing psycopg2-2.6.1.win-amd64-py2.7-pg9.4.4-release.exe
psycopg2.tests.test_module: module references __file__
psycopg2.tests.test_types_basic: module references __file__
creating 'c:\users\e2sn7cy\appdata\local\temp\easy_install-sa7asq\psycopg2-2.6.1-py2.7-win32.egg' and
 adding 'c:\users\e2sn7cy\appdata\local\temp\easy_install-sa7asq\psycopg2-2.6.1-py2.7-win32.egg.tmp'
to it
creating c:\users\e2sn7cy\envs\scrapeproj\lib\site-packages\psycopg2-2.6.1-py2.7-win32.egg
Extracting psycopg2-2.6.1-py2.7-win32.egg to c:\users\e2sn7cy\envs\scrapeproj\lib\site-packages
Adding psycopg2 2.6.1 to easy-install.pth file

Installed c:\users\e2sn7cy\envs\scrapeproj\lib\site-packages\psycopg2-2.6.1-py2.7-win32.egg
Processing dependencies for psycopg2==2.6.1
Finished processing dependencies for psycopg2==2.6.1

但是,当我再次尝试通过pip安装时,我收到了一个新的消息,说明它已经存在:
(ScrapeProj) C:\Users\e2sn7cy\Envs\ScrapeProj>pip install psycopg2
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in c:\users\e2sn7cy\envs\scrapepro
j\lib\site-packages\psycopg2-2.6.1-py2.7-win32.egg

然后我想尝试导入,但是出现了这个错误:
(ScrapeProj) C:\Users\e2sn7cy\Envs\ScrapeProj>python
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\e2sn7cy\Envs\ScrapeProj\lib\site-packages\psycopg2-2.6.1-py2.7-win32.egg\psycopg2\__
init__.py", line 50, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: DLL load failed: %1 is not a valid Win32 application.

现在我不知道该怎么办。谢谢。
编辑1: 我也已经将我的PostgreSQL路径添加到系统路径变量中。 路径:C:\Program Files\PostgreSQL\9.4 路径:C:\Program Files\PostgreSQL\9.4\bin
7个回答

5

你想让我从这里下载源代码包吗? - Rahul Shrivastava
@RahulShrivastava 工程师。不要使用Windows的源代码安装程序。请参见链接页面中的“Windows软件包”部分,使用二进制安装程序。 - Craig Ringer
我也尝试从Jason Erickson的网站下载exe文件,正如你所看到的。我已经使用easy_install安装了它。 - Rahul Shrivastava
@RahulShrivastava 我明白了。我之前没有注意到这一点,因为我以前从未尝试过通过 easy_install 安装它,而是直接执行它。 - Craig Ringer
我没有找到该文件。 - Alex78191
@Alex78191 这个答案非常老了。现在通过谷歌搜索“download psycopg2 binary windows”可以找到 https://pypi.org/project/psycopg2-binary/。 - Craig Ringer

5
正确的答案由Craig Ringer给出,我只是补充一下,因为我知道我们应该先检查在我们的系统上安装了64位或32位Python版本。如果您安装了32位版本的Python并尝试安装64位版本,则导入时会出现上述错误。
检查版本:
import platform platform.architecture()
然后您将获得如下输出:
('32bit','WindowsPE')

好的,谢谢你的跟进。你可以自由地接受你自己的答案。 - Craig Ringer
谢谢Craig,这将是我在Stack上的第一个答案。 - Rahul Shrivastava

2

现在,既然psycopg已经在PyPI中(截至2017年3月),只需以管理员权限启动命令提示符,并像这样安装:

python -m pip install -U pip
python -m pip install psycopg2

如果您没有安装pip,请先按照此处的说明进行安装: https://dev59.com/Bm445IYBdhLWcg3wq8FY#12476379

2

使用命令pip install psycopg2-binary进行安装

这对我有效


2

请注意,这仅适用于旧版本的psycopg2。自2.7起,它可以通过pip成功安装。 - Adam Starrh
这救了我的命。成功安装了psycopg2 2.6.2。它可以工作。 - Huanfa Chen

0

步骤一:编译器的安装与配置

https://wiki.python.org/moin/WindowsCompilers

在进行任何操作之前,请安装或升级Setuptools Python包。它包含兼容性改进和自动使用编译器的功能:

pip install --upgrade setuptools

步骤2:下载并安装PostgreSQL

在继续在虚拟环境中安装Python包之前,请先下载PostgreSQL本身。它包含在编译psycopg2 Python包时所需的文件。只需使用PostgreSQL安装程序(例如版本10)即可。

重要提示:将postgres C:\Program Files\PostgreSQL\10\bin文件夹添加到您的路径中。它包含psycopg2所需的.dll文件。

步骤3:安装psycopg2

pip install psycopg2

已在Windows 7 + python 3.7上测试通过


-1

在 Windows 平台上安装 Python 包(包括这个有问题的 psycopg2)的最佳/最简单方法是:

1)安装 Anaconda 并... 2)使用 Anaconda Navigator GUI 安装/更新包。

通过这种方式,可以避免许多不同包版本和安装之间出现的不一致性和冲突。


安装 MSVC 构建工具有什么困难? - Alex78191

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接