如何在 windows 7 上安装 psycopg2

How to install psycopg2 on windows 7

我已尝试 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

然后我尝试通过从 Stickpole 下载 .exe 文件来使用 easy_install,但出现以下错误:

(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 路径添加到系统路径变量

path:C:\Program Files\PostgreSQL.4

path:C:\Program Files\PostgreSQL.4\bin

下载 pre-packaged binary release of psycopg2 for Windows rather than compiling it yourself. It's a pain to compile on Windows. This is explained in the install documentation for psycopg2.

您可能需要删除安装了一半的尝试。

Craig Ringer 给出了正确的答案,我只是添加这个,因为我开始知道我们应该首先检查我们的系统上安装的是 64 位还是 32 位版本Python。如果您有 32 位版本的 Python 并且您将尝试安装 64 位版本,那么您将在导入时遇到上述错误。 查看版本:

import platform

platform.architecture()

你会得到这样的输出:

('32bit','WindowsPE')

  1. 从此页面选择合适的版本:

    http://www.stickpeople.com/projects/python/win-psycopg/

  2. 右击 select copy link address

  3. 回到家里,使用easy_install <<Paste URL Here>>

  4. 冻结您的新要求:pip freeze > requirements.txt

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

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

如果您没有安装 pip,请先按照此处的说明进行操作:

在 windows 平台上为 python 安装软件包(包括这个有问题的 psycopg2 )的 best/easiest 方法是:

1) 安装 anaconda 和 ... 2) 使用 Anaconda Navigator GUI 来 install/update 包。

通过这一点,避免了不同包版本和安装之间发生的许多不一致和冲突。

pip 安装 psycopg2-binary

这对我有用

第 1 步:编译器安装和配置

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

在执行任何操作之前,请安装或升级 Setuptools Python 软件包。它包含兼容性改进并添加自动使用编译器:

pip install --upgrade setuptools

第 2 步:下载并安装 PostgreSQL

在你继续安装 python 包之前,你的 virtualenvs 下载 postgres 本身。它包含编译 psycopg2 python 包时需要的文件。只需使用 PostgreSQL 安装程序(例如版本 10)。

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

第 3 步:安装 psycopg2

pip 安装 psycopg2

测试于 Windows 7 + python 3.7