安装psycopg2时如何解决此pip.exceptions.InstallError问题?

时间:2019-04-15 01:20:17

标签: python postgresql ubuntu psycopg2

我正在尝试安装psycopg2以与Flask和SQLAlchemy一起使用,但出现此安装错误。我需要什么才能使它正常工作?

tomds@computer:~/Projects/fwdev$ pipenv install psycopg2
Installing psycopg2…
Adding psycopg2 to Pipfile's [packages]…
✔ Installation Succeeded 
Installing dependencies from Pipfile.lock (caf66b)…
An error occurred while installing psycopg2==2.8.2 --hash=sha256:00cfecb3f3db6eb76dcc763e71777da56d12b6d61db6a2c6ccbbb0bff5421f8f --hash=sha256:076501fc24ae13b2609ba2303d88d4db79072562f0b8cc87ec1667dedff99dc1 --hash=sha256:4e2b34e4c0ddfeddf770d7df93e269700b080a4d2ec514fec668d71895f56782 --hash=sha256:5cacf21b6f813c239f100ef78a4132056f93a5940219ec25d2ef833cbeb05588 --hash=sha256:61f58e9ecb9e4dc7e30be56b562f8fc10ae3addcfcef51b588eed10a5a66100d --hash=sha256:8954ff6e47247bdd134db602fcadfc21662835bd92ce0760f3842eacfeb6e0f3 --hash=sha256:b6e8c854cdc623028e558a409b06ea2f16d13438335941c7765d0a42b5bedd33 --hash=sha256:baca21c0f7344576346e260454d0007313ccca8c170684707a63946b27a56c8f --hash=sha256:bb1735378770fb95dbe392d29e71405d45c8bdcfa064f916504833a92ab03c55 --hash=sha256:de3d3c46c1ee18f996db42d1eb44cf1565cc9e38fb1dbd9b773ff6b3fa8035d7 --hash=sha256:dee885602bb200bdcb1d30f6da6c7bb207360bc786d0a364fe1540dd14af0bab! Will try again.
     ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 9/9 — 00:00:06
Installing initially failed dependencies…
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.7/dist-packages/pipenv/core.py", line 1992, in do_install
[pipenv.exceptions.InstallError]:       skip_lock=skip_lock,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.7/dist-packages/pipenv/core.py", line 1253, in do_init
[pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.7/dist-packages/pipenv/core.py", line 859, in do_install_dependencies
[pipenv.exceptions.InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.7/dist-packages/pipenv/core.py", line 763, in batch_install
[pipenv.exceptions.InstallError]:       _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
[pipenv.exceptions.InstallError]:   File "/usr/local/lib/python3.7/dist-packages/pipenv/core.py", line 681, in _cleanup_procs
[pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ['Collecting psycopg2==2.8.2 (from -r /tmp/pipenv-rlrqe8sc-requirements/pipenv-qxjzwx04-requirement.txt (line 1))', '  Using cached https://files.pythonhosted.org/packages/23/7e/93c325482c328619870b6cd09370f6dbe1148283daca65115cd63642e60f/psycopg2-2.8.2.tar.gz', 'Building wheels for collected packages: psycopg2', '  Building wheel for psycopg2 (setup.py): started', "  Building wheel for psycopg2 (setup.py): finished with status 'error'", '  Complete output from command /home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/bin/python3 -u -c "import setuptools, tokenize;__file__=\'/tmp/pip-install-ptwj3g73/psycopg2/setup.py\';f=getattr(tokenize, \'open\', open)(__file__);code=f.read().replace(\'\\r\\n\', \'\\n\');f.close();exec(compile(code, __file__, \'exec\'))" bdist_wheel -d /tmp/pip-wheel-a_e2qvcu --python-tag cp37:', '  running bdist_wheel', '  running build', '  running build_py', '  creating build', '  creating build/lib.linux-x86_64-3.7', '  creating build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/__init__.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/sql.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/extensions.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/errorcodes.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/compat.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/tz.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/_json.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/_range.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/_lru_cache.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/extras.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/pool.py -> build/lib.linux-x86_64-3.7/psycopg2', '  copying lib/errors.py -> build/lib.linux-x86_64-3.7/psycopg2', '  warning: build_py: byte-compiling is disabled, skipping.', '  ', '  running build_ext', "  building 'psycopg2._psycopg' extension", '  creating build/temp.linux-x86_64-3.7', '  creating build/temp.linux-x86_64-3.7/psycopg', '  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.8.2 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=100007 -DHAVE_LO64=1 -I/usr/include/python3.7m -I/home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/include/python3.7m -I. -I/usr/include/postgresql -I/usr/include/postgresql/10/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement', '  In file included from psycopg/psycopgmodule.c:27:0:', '  ./psycopg/psycopg.h:34:10: fatal error: Python.h: No such file or directory', '   #include <Python.h>', '                ~~~~~~~~~', '  compilation terminated.', '  ', '  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", '  ', '  ----------------------------------------', '  Running setup.py clean for psycopg2', 'Failed to build psycopg2', 'Installing collected packages: psycopg2', '  Running setup.py install for psycopg2: started', "    Running setup.py install for psycopg2: finished with status 'error'", '    Complete output from command /home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/bin/python3 -u -c "import setuptools, tokenize;__file__=\'/tmp/pip-install-ptwj3g73/psycopg2/setup.py\';f=getattr(tokenize, \'open\', open)(__file__);code=f.read().replace(\'\\r\\n\', \'\\n\');f.close();exec(compile(code, __file__, \'exec\'))" install --record /tmp/pip-record-9jpdqyie/install-record.txt --single-version-externally-managed --compile --install-headers /home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/include/site/python3.7/psycopg2:', '    running install', '    running build', '    running build_py', '    creating build', '    creating build/lib.linux-x86_64-3.7', '    creating build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/__init__.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/sql.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/extensions.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/errorcodes.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/compat.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/tz.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/_json.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/_range.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/_lru_cache.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/extras.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/pool.py -> build/lib.linux-x86_64-3.7/psycopg2', '    copying lib/errors.py -> build/lib.linux-x86_64-3.7/psycopg2', '    warning: build_py: byte-compiling is disabled, skipping.', '    ', '    running build_ext', "    building 'psycopg2._psycopg' extension", '    creating build/temp.linux-x86_64-3.7', '    creating build/temp.linux-x86_64-3.7/psycopg', '    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.8.2 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=100007 -DHAVE_LO64=1 -I/usr/include/python3.7m -I/home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/include/python3.7m -I. -I/usr/include/postgresql -I/usr/include/postgresql/10/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement', '    In file included from psycopg/psycopgmodule.c:27:0:', '    ./psycopg/psycopg.h:34:10: fatal error: Python.h: No such file or directory', '     #include <Python.h>', '                  ~~~~~~~~~', '    compilation terminated.', '    ', '    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", '    ', '    ----------------------------------------']
[pipenv.exceptions.InstallError]: ['Failed building wheel for psycopg2', 'Command "/home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/bin/python3 -u -c "import setuptools, tokenize;__file__=\'/tmp/pip-install-ptwj3g73/psycopg2/setup.py\';f=getattr(tokenize, \'open\', open)(__file__);code=f.read().replace(\'\\r\\n\', \'\\n\');f.close();exec(compile(code, __file__, \'exec\'))" install --record /tmp/pip-record-9jpdqyie/install-record.txt --single-version-externally-managed --compile --install-headers /home/tomds/.local/share/virtualenvs/fwdev-TAVasR-s/include/site/python3.7/psycopg2" failed with error code 1 in /tmp/pip-install-ptwj3g73/psycopg2/']
  • 我通过遵循其他没有运气的教程安装了python 3.7,postgresql 10.7,postgresql-server-dev-10,libpq-dev,python3-psycopg2和python3-dev。
  • pip install-升级轮是最新的
  • pg_config输出没有错误

更多信息: 您可以重新打开吗?我发现这可能与与psycopg2和psycopg2-binary相关的已知问题有关,这些问题使它在2018年7月与wheel不兼容。我想我已经找到了特定问题,但仍在测试中。您链接的答案是我在询问之前主要经历的答案。问题不是重复的。

0 个答案:

没有答案