无法安装 psycopg2 Ubuntu
Cannot install psycopg2 Ubuntu
试图让服务器为 Django 项目做好准备,但我 运行 遇到了 postgres 设置的一些问题。
我正在遵循本指南:
https://jee-appy.blogspot.com/2017/01/deply-django-with-nginx.html
我在第 5 步:
- Now, we need to configure postgreSQL so that it can communicate with our Django application. For this, install psycopg2 database
adapter. But this adapter have some package dependencies, so first
install them.
run:
(django_env) $ sudo apt-get install libpq-dev python3-dev
then...
(django_env) $ pip install psycopg2
我这样做了,在说明的这一点上,我得到了一个 "compilation failed" 错误。
我尝试了这个堆栈交换问题中建议的解决方案:
Trouble with psycopg2 in virtualenv python3 for use with Django
和这个:
Cannot install psycopg2 on virtualenv
我是一个 linux 和 django 菜鸟,所以如果这是一个重复的问题,请怜悯我并留下评论解释为什么你在这样做时将其标记为重复。
感谢您的宝贵时间!
这是导致它的输出和安装命令:
(django_env1) user:/home/projects/sample_project$ sudo pip install psycopg2
Downloading/unpacking psycopg2
Downloading psycopg2-2.7.3.2.tar.gz (425kB): 425kB downloaded
Running setup.py (path:/tmp/pip_build_root/psycopg2/setup.py) egg_info for package psycopg2
Installing collected packages: psycopg2
Running setup.py install for psycopg2
building 'psycopg2._psycopg' extension
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.7.3.2 (dt dec pq3 ext lo64)" -DPG_VERSION_NUM=90320 -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.3/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:34:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_0zc1L-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/psycopg1.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-2.7/psycopg2
creating build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_bug_gc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_types_extras.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_async_keyword.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_sql.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_ipaddress.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_copy.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_with.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_connection.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_module.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_replication.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_dates.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_bugX000.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/testconfig.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_errcodes.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_transaction.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_async.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/testutils.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_cursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_quote.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_notify.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_lobject.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_cancel.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_green.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_types_basic.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/psycopg
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.7.3.2 (dt dec pq3 ext lo64)" -DPG_VERSION_NUM=90320 -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.3/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:34:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_0zc1L-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/psycopg2
您已经为 Python 3 安装了 python-dev 库。您的 psycopg2 安装使用的是 python 2.7
确保你已经安装了 python3-pip
sudo apt-get install python3-pip
然后:
pip3 install psycopg2
如果仍然失败,请尝试安装 postgresql 的开发头文件:
sudo apt install python3-dev libpq-dev
pip3 install psycopg2
如果在 Python 2
sudo apt update
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install libpq-dev
sudo apt-get install python-dev
sudo apt-get install python-pip
pip2 install psycopg2-binary
如果在 Ubuntu 20.04
sudo apt-get install build-essential
然后 运行 Python 2 或 3 的其他步骤。
我正在 ubuntu docker 图像上测试我的应用程序,该图像只安装了 python2.7.6(大多数大型组织都会发生这种情况)
如果您正在使用 python2.x(尽管您应该计划尽快迁移到 3.x),请检查以下依赖项:
sudo apt update
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install libpq-dev # this is required as psycopg2 uses pg_config
sudo apt-get install python-dev
sudo apt-get install python-pip
现在安装 psycopg2 使用:
pip2 install psycopg2-binary
我在尝试将它安装在 virtualenv(with python3)
时遇到了同样的错误
我通过安装以前版本的 psycopg2 解决了这个问题。
pip install psycopg2==2.7.5
我也必须在我的 Ubuntu 20.04 LTS 上安装这个:
sudo apt-get install build-essential
我在 ubuntu 18.04 LTS OS 上遇到了同样的问题。
此外,还要面对 Pillow
中的一些问题。在这两种情况下(psycopg2
和 Pillow
)这些命令解决了我的问题。
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev libjpeg-dev libjpeg8-dev
sudo apt install libpq-dev
sudo apt-get install python3-pip
注意:我在python=3.8.5
环境下安装了psycopg2
这解决了我的问题。我正在使用 Python 3.8.2,Ubuntu 20.04 LTS:
sudo apt-get install python3-dev
sudo apt-get install python3-pip
pip install psycopg2
请注意,在许多发行版中,默认情况下并未安装针对库进行编译所需的开发 headers。对于 Ubuntu 上的 psycopg2,您需要 python3 和 postgresql headers:
sudo apt install python3-dev libpq-dev
pip3 install psycopg2
这些可以安装在你激活的虚拟环境中。
要在 ubuntu 或 mate 20 中安装 psycopg2
,您需要先安装:
sudo apt install libpq-dev
然后:
pip3 install psycopg2
确保您使用的是 python 版本的正确 psycopg 版本。
示例 python 3.8.
python 3.8, the supported version is psycopg 2.8.4.
引用ubuntu 20.04 + python 3.8 , pip install psycopg2==2.7.3.2 error #1106
我使用另一个内部安装了 psycopg2 的包解决了这个问题。
pip install aiopg
就我而言,当我 运行 pip install -r requirements.txt
在 Ubuntu 机器上安装 Django 项目的所有包时,我遇到了这个问题,我 运行 进入此错误和许多其他安装错误。
为了解决这个问题,我运行执行了以下命令:
sudo apt install postgresql postgresql-contrib
sudo apt install libpq-dev
sudo apt install python3-dev
sudo apt install python3-pip
sudo apt install python3-psycopg2
pip3 install psycopg2
pip3 install psycopg2-binary
此外,还要检查 Ubuntu 和 Python 以及 Psycopg 版本是否兼容。
此外,@Arghya Bhattacharya 回答 pip install aiopg
,当我 运行 第二次进入它时解决问题。
试图让服务器为 Django 项目做好准备,但我 运行 遇到了 postgres 设置的一些问题。
我正在遵循本指南: https://jee-appy.blogspot.com/2017/01/deply-django-with-nginx.html
我在第 5 步:
- Now, we need to configure postgreSQL so that it can communicate with our Django application. For this, install psycopg2 database adapter. But this adapter have some package dependencies, so first install them.
run:
(django_env) $ sudo apt-get install libpq-dev python3-dev
then...
(django_env) $ pip install psycopg2
我这样做了,在说明的这一点上,我得到了一个 "compilation failed" 错误。
我尝试了这个堆栈交换问题中建议的解决方案: Trouble with psycopg2 in virtualenv python3 for use with Django 和这个: Cannot install psycopg2 on virtualenv
我是一个 linux 和 django 菜鸟,所以如果这是一个重复的问题,请怜悯我并留下评论解释为什么你在这样做时将其标记为重复。
感谢您的宝贵时间!
这是导致它的输出和安装命令:
(django_env1) user:/home/projects/sample_project$ sudo pip install psycopg2
Downloading/unpacking psycopg2
Downloading psycopg2-2.7.3.2.tar.gz (425kB): 425kB downloaded
Running setup.py (path:/tmp/pip_build_root/psycopg2/setup.py) egg_info for package psycopg2
Installing collected packages: psycopg2
Running setup.py install for psycopg2
building 'psycopg2._psycopg' extension
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.7.3.2 (dt dec pq3 ext lo64)" -DPG_VERSION_NUM=90320 -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.3/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:34:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_0zc1L-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/psycopg1.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-2.7/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-2.7/psycopg2
creating build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_bug_gc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_types_extras.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_async_keyword.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_sql.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_ipaddress.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/dbapi20.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/__init__.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_copy.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_with.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_connection.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_module.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_replication.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_dates.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_bugX000.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/testconfig.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_errcodes.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_transaction.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_async.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/testutils.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_cursor.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_quote.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_notify.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_lobject.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_cancel.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_green.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
copying tests/test_types_basic.py -> build/lib.linux-x86_64-2.7/psycopg2/tests
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/psycopg
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.7.3.2 (dt dec pq3 ext lo64)" -DPG_VERSION_NUM=90320 -DHAVE_LO64=1 -I/usr/include/python2.7 -I. -I/usr/include/postgresql -I/usr/include/postgresql/9.3/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-2.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:34:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_0zc1L-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/psycopg2
您已经为 Python 3 安装了 python-dev 库。您的 psycopg2 安装使用的是 python 2.7
确保你已经安装了 python3-pip
sudo apt-get install python3-pip
然后:
pip3 install psycopg2
如果仍然失败,请尝试安装 postgresql 的开发头文件:
sudo apt install python3-dev libpq-dev
pip3 install psycopg2
如果在 Python 2
sudo apt update
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install libpq-dev
sudo apt-get install python-dev
sudo apt-get install python-pip
pip2 install psycopg2-binary
如果在 Ubuntu 20.04
sudo apt-get install build-essential
然后 运行 Python 2 或 3 的其他步骤。
我正在 ubuntu docker 图像上测试我的应用程序,该图像只安装了 python2.7.6(大多数大型组织都会发生这种情况)
如果您正在使用 python2.x(尽管您应该计划尽快迁移到 3.x),请检查以下依赖项:
sudo apt update
sudo apt-get install postgresql postgresql-contrib
sudo apt-get install libpq-dev # this is required as psycopg2 uses pg_config
sudo apt-get install python-dev
sudo apt-get install python-pip
现在安装 psycopg2 使用:
pip2 install psycopg2-binary
我在尝试将它安装在 virtualenv(with python3)
时遇到了同样的错误我通过安装以前版本的 psycopg2 解决了这个问题。
pip install psycopg2==2.7.5
我也必须在我的 Ubuntu 20.04 LTS 上安装这个:
sudo apt-get install build-essential
我在 ubuntu 18.04 LTS OS 上遇到了同样的问题。
此外,还要面对 Pillow
中的一些问题。在这两种情况下(psycopg2
和 Pillow
)这些命令解决了我的问题。
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev libjpeg-dev libjpeg8-dev
sudo apt install libpq-dev
sudo apt-get install python3-pip
注意:我在python=3.8.5
环境下安装了psycopg2
这解决了我的问题。我正在使用 Python 3.8.2,Ubuntu 20.04 LTS:
sudo apt-get install python3-dev
sudo apt-get install python3-pip
pip install psycopg2
请注意,在许多发行版中,默认情况下并未安装针对库进行编译所需的开发 headers。对于 Ubuntu 上的 psycopg2,您需要 python3 和 postgresql headers:
sudo apt install python3-dev libpq-dev
pip3 install psycopg2
这些可以安装在你激活的虚拟环境中。
要在 ubuntu 或 mate 20 中安装 psycopg2
,您需要先安装:
sudo apt install libpq-dev
然后:
pip3 install psycopg2
确保您使用的是 python 版本的正确 psycopg 版本。
示例 python 3.8.
python 3.8, the supported version is psycopg 2.8.4.
引用ubuntu 20.04 + python 3.8 , pip install psycopg2==2.7.3.2 error #1106
我使用另一个内部安装了 psycopg2 的包解决了这个问题。
pip install aiopg
就我而言,当我 运行 pip install -r requirements.txt
在 Ubuntu 机器上安装 Django 项目的所有包时,我遇到了这个问题,我 运行 进入此错误和许多其他安装错误。
为了解决这个问题,我运行执行了以下命令:
sudo apt install postgresql postgresql-contrib
sudo apt install libpq-dev
sudo apt install python3-dev
sudo apt install python3-pip
sudo apt install python3-psycopg2
pip3 install psycopg2
pip3 install psycopg2-binary
此外,还要检查 Ubuntu 和 Python 以及 Psycopg 版本是否兼容。
此外,@Arghya Bhattacharya 回答 pip install aiopg
,当我 运行 第二次进入它时解决问题。