libgit2 / pygit2

Python bindings for libgit2
https://www.pygit2.org/
Other
1.58k stars 382 forks source link

Unable to pip install pygit2 #1123

Closed bartekkrol96 closed 2 years ago

bartekkrol96 commented 2 years ago

after 1.8.0 (2022-02-04) release its impossible to install pygit2 via pip

Python 3.9.5 Ubuntu 20.04.3 LTS pip 21.3.1

  ERROR: Command errored out with exit status 1:
   command: /home/miniconda/bin/python /home/miniconda/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp8_bzv6f7
       cwd: /tmp/pip-install-q9gl423_/pygit2_833491680d2c428ab040d9da5bd8b434
  Complete output (12 lines):
  running bdist_wheel
  running build
  running build_py
  running build_ext
  generating cffi module 'build/temp.linux-x86_64-3.9/pygit2._libgit2.c'
  building 'pygit2._pygit2' extension
  In file included from src/blob.c:30:
  src/diff.h:33:10: fatal error: git2.h: No such file or directory
   #include <git2.h>
            ^~~~~~~~
  compilation terminated.
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for pygit2
Failed to build pygit2
che commented 2 years ago

@bartekkrol96 I think it's help: apt-get update && apt-get install libgit2-dev

jdavid commented 2 years ago

When there's a new release, wait for the wheels to be uploaded, it takes a while.

fortminors commented 1 year ago

This is still relevant. I can't install pygit2 on ubuntu 20.04. It is even easy to reproduce with docker image for ubuntu:20.04:

docker pull ubuntu:20.04
docker run --rm -it ubuntu:20.04
apt-get update && apt-get install -y python3 python3-pip
pip install pygit2

I get the following output:

root:/# pip install pygit2
Collecting pygit2
  Downloading pygit2-1.11.1.tar.gz (733 kB)
     |████████████████████████████████| 733 kB 1.4 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Collecting cffi>=1.9.1
  Using cached cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (442 kB)
Collecting pycparser
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Building wheels for collected packages: pygit2
  Building wheel for pygit2 (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /tmp/tmpjkxloqmn build_wheel /tmp/tmpv4rso8xp
       cwd: /tmp/pip-install-mtvz0wlv/pygit2
  Complete output (66 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-cpython-38
  creating build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/repository.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/utils.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/index.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/_run.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/settings.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/__init__.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/_build.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/ffi.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/blame.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/submodule.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/remote.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/callbacks.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/refspec.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/packbuilder.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/credentials.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/config.py -> build/lib.linux-x86_64-cpython-38/pygit2
  copying pygit2/errors.py -> build/lib.linux-x86_64-cpython-38/pygit2
  creating build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/commit.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/index.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/repository.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/diff.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/common.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/transport.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/net.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/oid.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/submodule.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/remote.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/buffer.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/revert.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/errors.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/checkout.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/proxy.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/pack.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/blame.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/merge.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/stash.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/describe.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/clone.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/config.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/refspec.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/indexer.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/callbacks.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/graph.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/types.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/attr.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/decl/strarray.h -> build/lib.linux-x86_64-cpython-38/pygit2/decl
  copying pygit2/_pygit2.pyi -> build/lib.linux-x86_64-cpython-38/pygit2
  running build_ext
  generating cffi module 'build/temp.linux-x86_64-cpython-38/pygit2._libgit2.c'
  creating build/temp.linux-x86_64-cpython-38
  building 'pygit2._pygit2' extension
  creating build/temp.linux-x86_64-cpython-38/src
  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 -fPIC -I/usr/local/include -I/usr/include/python3.8 -c src/blob.c -o build/temp.linux-x86_64-cpython-38/src/blob.o
  In file included from src/blob.c:30:
  src/diff.h:33:10: fatal error: git2.h: No such file or directory
     33 | #include <git2.h>
        |          ^~~~~~~~
  compilation terminated.
  error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for pygit2
Failed to build pygit2
ERROR: Could not build wheels for pygit2 which use PEP 517 and cannot be installed directly