Колесо сборки для psycopg2… ошибка pip3 при установке psycopg2?

#python #django #postgresql #psycopg2 #requirements.txt

#python #django #postgresql #psycopg2 #requirements.txt

Вопрос:

Когда я запускаю

 pip3 install -r requirements.txt 
  

тогда покажите мне ошибки, которые я покажу вам ниже
Я использую

 python version 3.8

PostgreSQL 13.0 (Ubuntu 13.0-1.pgdg20.04 1)
  

смотрите мой requirement.txt файлы здесь

 certifi==2018.4.16
chardet==3.0.4
click==6.7
croniter==0.3.24
Django==2.0.5
django-rq==1.1.0
et-xmlfile==1.0.1
idna==2.7
jdcal==1.4
lxml==4.2.3
openpyxl==2.5.4
#pkg-resources==0.0.0
psycopg2==2.7.5
psycopg2-binary==2.8.5
python-dateutil==2.7.3
python-decouple==3.1
pytz==2018.5
redis==2.10.6
requests==2.19.1
rq==0.12.0
rq-scheduler==0.8.3
six==1.11.0
Unipath==1.1
urllib3==1.23
  

итак, покажите мне эту ошибку в терминале, я делюсь с вами полным командным сообщением, которое я уже ввел

 pip3 install -r requirements.txt                                               ✔  2186  17:28:42
Requirement already satisfied: certifi==2018.4.16 in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 1)) (2018.4.16)
Requirement already satisfied: chardet==3.0.4 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (3.0.4)
Requirement already satisfied: click==6.7 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 3)) (6.7)
Requirement already satisfied: croniter==0.3.24 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 4)) (0.3.24)
Requirement already satisfied: Django==2.0.5 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 5)) (2.0.5)
Requirement already satisfied: django-rq==1.1.0 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 6)) (1.1.0)
Requirement already satisfied: et-xmlfile==1.0.1 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 7)) (1.0.1)
Requirement already satisfied: idna==2.7 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 8)) (2.7)
Requirement already satisfied: jdcal==1.4 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 9)) (1.4)
Requirement already satisfied: lxml==4.2.3 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 10)) (4.2.3)
Requirement already satisfied: openpyxl==2.5.4 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 11)) (2.5.4)
Collecting psycopg2==2.7.5
  Using cached psycopg2-2.7.5.tar.gz (426 kB)
Collecting psycopg2-binary==2.8.5
  Downloading psycopg2_binary-2.8.5-cp38-cp38-manylinux1_x86_64.whl (3.0 MB)
     |████████████████████████████████| 3.0 MB 101 kB/s 
Requirement already satisfied: python-dateutil==2.7.3 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 15)) (2.7.3)
Processing /code/data/.cache/pip/wheels/34/e3/10/a284f71c3b99a9ed3ab3d7d6f3af2dd72855bf04aa763dfef5/python_decouple-3.1-py3-none-any.whl
Requirement already satisfied: pytz==2018.5 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 17)) (2018.5)
Collecting redis==2.10.6
  Using cached redis-2.10.6-py2.py3-none-any.whl (64 kB)
Collecting requests==2.19.1
  Using cached requests-2.19.1-py2.py3-none-any.whl (91 kB)
Collecting rq==0.12.0
  Using cached rq-0.12.0-py2.py3-none-any.whl (54 kB)
Collecting rq-scheduler==0.8.3
  Using cached rq_scheduler-0.8.3-py2.py3-none-any.whl (14 kB)
Collecting six==1.11.0
  Using cached six-1.11.0-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: Unipath==1.1 in /code/data/.local/lib/python3.8/site-packages (from -r requirements.txt (line 23)) (1.1)
Collecting urllib3==1.23
  Using cached urllib3-1.23-py2.py3-none-any.whl (133 kB)
Building wheels for collected packages: psycopg2
  Building wheel for psycopg2 (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"'; __file__='"
 command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-_y3ne80g
       cwd: /tmp/pip-install-wg77t_ou/psycopg2/
  Complete output (72 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/psycopg2
  copying lib/extensions.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/tz.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/errorcodes.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/_range.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/sql.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/pool.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/_json.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/psycopg1.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/extras.py -> build/lib.linux-x86_64-3.8/psycopg2
  copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2
  creating build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_with.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_types_basic.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_async_keyword.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_types_extras.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/testutils.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_green.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_copy.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_bugX000.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_module.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_cancel.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_lobject.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_dates.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_quote.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_replication.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_sql.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_errcodes.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/testconfig.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_connection.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_bug_gc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_cursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_async.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_notify.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/test_transaction.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  copying tests/dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
  Skipping optional fixer: buffer
  Skipping optional fixer: idioms
  Skipping optional fixer: set_literal
  Skipping optional fixer: ws_comma
  running build_ext
  building 'psycopg2._psycopg' extension
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/psycopg
  x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.5 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130000 -DHAVE_LO64=1 -I/usr/include/python3.8 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.8/psycopg/psycopgmodule.o -Wdeclaration-after-statement
  psycopg/psycopgmodule.c: In function ‘psyco_is_main_interp’:
  psycopg/psycopgmodule.c:689:18: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
    689 |     while (interp->next)
        |                  ^~
  
  It appears you are missing some prerequisite to build the package from source.
  
  You may install a binary package by installing 'psycopg2-binary' from PyPI.
  If you want to install psycopg2 from source, please install the packages
  required for the build and try again.
  
  For further information please check the 'doc/src/install.rst' file (also at
  <http://initd.org/psycopg/docs/install.html>).
  
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for psycopg2
  Running setup.py clean for psycopg2
Failed to build psycopg2
Installing collected packages: psycopg2, psycopg2-binary, python-decouple, redis, urllib3, requests, rq, rq-scheduler, six
  Attempting uninstall: psycopg2
    Found existing installation: psycopg2 2.8.6
    Uninstalling psycopg2-2.8.6:
      Successfully uninstalled psycopg2-2.8.6
    Running setup.py install for psycopg2 ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8sijq8ua/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /code/data/.local/include/python3.8/psycopg2
         cwd: /tmp/pip-install-wg77t_ou/psycopg2/
    Complete output (72 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.8
    creating build/lib.linux-x86_64-3.8/psycopg2
    copying lib/extensions.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/tz.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/errorcodes.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/_range.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/sql.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/pool.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/_json.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/psycopg1.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/extras.py -> build/lib.linux-x86_64-3.8/psycopg2
    copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2
    creating build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_with.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_types_basic.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_async_keyword.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_types_extras.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/testutils.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_green.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_copy.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_bugX000.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_module.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_cancel.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_lobject.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_dates.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_quote.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_replication.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_sql.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_errcodes.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/testconfig.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_connection.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_bug_gc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_cursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_async.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_notify.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/test_transaction.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    copying tests/dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    building 'psycopg2._psycopg' extension
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/psycopg
    x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.5 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130000 -DHAVE_LO64=1 -I/usr/include/python3.8 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.8/psycopg/psycopgmodule.o -Wdeclaration-after-statement
    psycopg/psycopgmodule.c: In function ‘psyco_is_main_interp’:
    psycopg/psycopgmodule.c:689:18: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
      689 |     while (interp->next)
          |                  ^~
    
    It appears you are missing some prerequisite to build the package from source.
    
    You may install a binary package by installing 'psycopg2-binary' from PyPI.
    If you want to install psycopg2 from source, please install the packages
    required for the build and try again.
    
    For further information please check the 'doc/src/install.rst' file (also at
    <http://initd.org/psycopg/docs/install.html>).
    
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
  Rolling back uninstall of psycopg2
  Moving to /code/data/.local/lib/python3.8/site-packages/psycopg2-2.8.6-py3.8.egg-info
   from /code/data/.local/lib/python3.8/site-packages/~sycopg2-2.8.6-py3.8.egg-info
  Moving to /code/data/.local/lib/python3.8/site-packages/psycopg2/
   from /code/data/.local/lib/python3.8/site-packages/~sycopg2
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wg77t_ou/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8sijq8ua/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /code/data/.local/include/python3.8/psycopg2 Check the logs for full command output.
  

из requirement.txt

 #psycopg2==2.7.5
#psycopg2-binary==2.8.5
  

когда я комментирую выше, ошибка исчезает, но тогда база данных не работает должным образом.
но если я попробую python3 manage.py runserver
затем покажет мне также ошибку

  from lawyers.views import *
  File "/code/data/abc/proj/lawyers/views.py", line 37, in <module>
    from django_rq import job
  File "/code/data/.local/lib/python3.8/site-packages/django_rq/__init__.py", line 3, in <module>
    from .decorators import job
  File "/code/data/.local/lib/python3.8/site-packages/django_rq/decorators.py", line 6, in <module>
    from .queues import get_queue
SyntaxError: invalid syntax (queues.py, line 132)
  

Я думаю, что ошибка показывает мне в django_rq
при вводе python3 manage.py runserver
подскажите мне возможные решения спасибо, я пробовал много, но безуспешно

Комментарии:

1. Просто оставьте psycopg2==2.7.5 комментарии. Раскомментировать psycopg2-binary==2.8.5 . Двоичная версия не требует установки библиотек разработки. Ошибка, которую вы получили, была связана с попыткой сборки psycopg2==2.7.5 из исходного кода и отсутствием библиотек разработки. Также в вашей установке указано, что у вас уже установлен psycopg2 2.8.6, поэтому я бы увеличил версию в соответствии с вашими требованиями. Также, вероятно, не помешало бы удалить psycopg2 перед повторным запуском, чтобы убедиться, что вы работаете только с одной версией.

2. @AdrianKlaver снова показывает мне ту же ошибку при попытке запустить python3 manage.py затем runserver покажет мне недопустимую синтаксическую ошибку из пакета django-rq /python3.8/site-packages/django_rq/decorators.py «, строка 6, в <module> from .queues импортируйте синтаксическую ошибку get_queue: недопустимый синтаксис (queues.py , строка 132)

Ответ №1:

Я решаю свою проблему, работающую для меня в основном, также с версией python. Я устанавливаю версию python 3.7 с помощью этой команды

 sudo apt-get install python3.7
  

затем активируйте среду

 source env/bin/activate
  

Затем я устанавливаю свой requirements.txt файлы с помощью этой команды

  python3.7 -m pip install requirements.txt
  

моя эта ошибка устранена, не показывайте мне снова
Колесо сборки для psycopg2 … ошибка pip3 при установке psycopg2?

тогда покажите мне

Ошибка ModuleNotFoundError: нет модуля с именем «pandas», тогда я устанавливаю его таким образом

 python3.7 -m pip install pandas
  

Когда я запускаю python3.7 manage.py runserver
Тогда покажите мне ошибку django-rq

 /code/data/.local/lib/python3.7/site-packages/django_rq/queues.py", line 132
    def get_queue(name='default', default_timeout=None, async=None,
                                                            ^
  

Теперь в python это so async зарезервировано слово, затем в моем пакете я заменяю имя async is_async на целое django-rq/queues.py
, когда я снова запускаю проект, а затем показываю мне эту ошибку

   import xlsxwriter
ModuleNotFoundError: No module named 'xlsxwriter'
  

Затем я исправляю таким образом

  python3.7 -m pip install xlsxwriter         
  

Тогда покажите мне еще одну ошибку

  from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'
  

Затем я исправил это таким образом

 python3.7 -m pip install bs4     
  

Тогда мой проект работает нормально.
Я надеюсь, что мое решение полезно для всех.
Мне временно требуется версия python3.7, поэтому я не хочу менять их путь на python3.