📜  pipenv 安装 psycopg2==2.8.4 时出错 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:33:42.529000             🧑  作者: Mango

介绍:

当我们使用 pipenv 安装 psycopg2==2.8.4 库时,可能会遇到安装失败的情况。这通常是由于缺少所需的依赖项引起的。在本文中,我们将深入探讨出现这种情况的原因,并提供解决方案。

错误情况:

当尝试使用 pipenv 安装 psycopg2==2.8.4 库时,我们会发现以下错误消息:

    $ pipenv install psycopg2==2.8.4
    Installing psycopg2==2.8.4...
    Collecting psycopg2==2.8.4
      Using cached psycopg2-2.8.4.tar.gz (377 kB)
    ERROR: Command errored out with exit status 1:
     command: /Users/user/.local/share/virtualenvs/project-OIfx6yhx/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/setup.py'"'"'; __file__='"'"'/private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info
         cwd: /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/
    Complete output (6 lines):
    running egg_info
    creating /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info/psycopg2.egg-info
    writing /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info/psycopg2.egg-info/PKG-INFO
    writing dependency_links to /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info/psycopg2.egg-info/dependency_links.txt
    writing top-level names to /private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info/psycopg2.egg-info/top_level.txt
    writing manifest file '/private/var/folders/ld/bj7zdyqs6zn0vypf9mf2qg5r0000gn/T/pip-install-j5u5cae3/psycopg2/pip-egg-info/psycopg2.egg-info/SOURCES.txt'
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
解决方案:

这个错误是由于缺少所需的依赖项引起的。下面是一些可能缺失的依赖项:

  • PostgreSQL。您必须安装 PostgreSQL 并设置环境变量,以在编译期间从中获取所需的头文件和库文件。可以通过运行以下命令在 Ubuntu 上安装 PostgreSQL

    sudo apt-get install postgresql
    
  • Python3-dev。要编译 psycopg2,您需要 Python 的开发包。在 Ubuntu 上,可以运行以下命令安装python3-dev

    sudo apt-get install python3-dev
    
  • libpq-dev。您还需要安装使用 Psycopg2 库所需的 libpq 库文件。在 Ubuntu 上,可以运行以下命令安装 libpq-dev

    sudo apt-get install libpq-dev
    

请注意,如果您是在其他操作系统上运行 pipenv,则必须相应地安装适当的依赖项。

安装完所有需要的依赖项后,再次运行以下命令来安装 psycopg2 库,它应该能够成功安装:

pipenv install psycopg2==2.8.4

现在,您可以在 pipenv 中使用 psycopg2 库了!

*注:代码块使用 Markdown 语法

```bash
sudo apt-get install postgresql
sudo apt-get install python3-dev
sudo apt-get install libpq-dev
pipenv install psycopg2==2.8.4
```