Installing psycopg2 on custom runners is giving error for python3.11
See original GitHub issueDescription:
Installing psycopg2 on python3.11 on custom runners gives error
Action version:
Runner version 2.299.1
Platform:
- Ubuntu
- macOS
- Windows
Runner type:
- Hosted
- Self-hosted
Tools version:
Python 3.11.0
Repro steps:
Once this is running on a custom runner, here is what I had to do reproduce the issue
mkdir ~/.x
cd ~/.x
/home/ubuntu/actions-runner/_work/_tool/Python/3.11.0/x64/bin/python3.11 -m venv venv
source venv/bin/activate
pip install -U pip wheel
pip install psycopg2
Expected behavior:
psycopg2 should install correctly
Actual behavior:
Collecting psycopg2
Using cached psycopg2-2.9.5.tar.gz (384 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: psycopg2
Building wheel for psycopg2 (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [40 lines of output]
/home/ranjith/.x/venv/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
warnings.warn(msg, warning_class)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/errors.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-cpython-311/psycopg2
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/psycopg
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC "-DPSYCOPG_VERSION=2.9.5 (dt dec pq3 ext lo64)" -DPSYCOPG_DEBUG=1 -DPG_VERSION_NUM=140005 -DHAVE_LO64=1 -DPSYCOPG_DEBUG=1 -I/home/ranjith/.x/venv/include -I/opt/hostedtoolcache/Python/3.11.0/x64/include/python3.11 -I. -I/usr/include/postgresql -I/usr/include/postgresql/14/server -I/usr/include/libxml2 -c psycopg/adapter_asis.c -o build/temp.linux-x86_64-cpython-311/psycopg/adapter_asis.o -Wdeclaration-after-statement
In file included from psycopg/adapter_asis.c:28:
./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory
35 | #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
<https://www.psycopg.org/docs/install.html>).
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for psycopg2
Running setup.py clean for psycopg2
Failed to build psycopg2
Installing collected packages: psycopg2
Running setup.py install for psycopg2 ... error
error: subprocess-exited-with-error
× Running setup.py install for psycopg2 did not run successfully.
│ exit code: 1
╰─> [42 lines of output]
/home/ranjith/.x/venv/lib/python3.11/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
warnings.warn(msg, warning_class)
running install
/home/ranjith/.x/venv/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/errors.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-cpython-311/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-cpython-311/psycopg2
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/psycopg
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC "-DPSYCOPG_VERSION=2.9.5 (dt dec pq3 ext lo64)" -DPSYCOPG_DEBUG=1 -DPG_VERSION_NUM=140005 -DHAVE_LO64=1 -DPSYCOPG_DEBUG=1 -I/home/ranjith/.x/venv/include -I/opt/hostedtoolcache/Python/3.11.0/x64/include/python3.11 -I. -I/usr/include/postgresql -I/usr/include/postgresql/14/server -I/usr/include/libxml2 -c psycopg/adapter_asis.c -o build/temp.linux-x86_64-cpython-311/psycopg/adapter_asis.o -Wdeclaration-after-statement
In file included from psycopg/adapter_asis.c:28:
./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory
35 | #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
<https://www.psycopg.org/docs/install.html>).
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> psycopg2
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Issue Analytics
- State:
- Created 10 months ago
- Reactions:7
- Comments:12 (5 by maintainers)
Top Results From Across the Web
python - Failed building wheel for psycopg2 (Windows 11)
I am building a Django project, and as I was installing the psycopg2(using virtual env), I kept getting an error. Versions:.
Read more >pip install psycopg2 error subprocess-exited-with-error
I am currently trying to make use of pypy to try and see with a profiler if I will get better results than...
Read more >Installing the psycopg2 Python Package for PostgreSQL ...
The psycopg2 package is automatically installed as a dependency of Cloudera Manager Agent, but the version installed is often lower than 2.7.5. If...
Read more >Cannot Import Pyscopg2 with ArcGIS Pro - GIS Stack Exchange
However I am confident psycopg2 is installed. I can verify this by starting python in terminal and running import psycopg2 without error.
Read more >How to Install psycopg2 Binary Module in Python
If python is not installed in your system, then you can install it running the given command in your command prompt. pip install...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hello @ranjith19 ! Thanks for reporting this! We will investigate the issue and come back to you as soon as we have any updates
@ranjith19 It sees the correct name of the ubuntu package is
libpython3.11-dev
nowPlease try to execute
According to this it should install missing headers