Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install fails on pycairo dependancy #8

Closed
kerryhatcher opened this issue Nov 30, 2020 · 5 comments · Fixed by #9
Closed

Install fails on pycairo dependancy #8

kerryhatcher opened this issue Nov 30, 2020 · 5 comments · Fixed by #9

Comments

@kerryhatcher
Copy link
Contributor

Attempted install fails with either pip or pipx to install on Ubuntu 20.04. I'm using pyenv to manage my user python.

Note: I understand this is an issue with pycairo and not camset however it would benefit users of camset to figure this out and add a workaround or fix to the readme. I've spent a small amount of time attempting to debug the issue (installing dependencies and other ideas I found via Googling). Ended up just using v4l2-ctl to solve my immedate need but I'd much rather use Camset in the future.

Expected:

pip(x) install camset to successfully install application.

Experienced:

  • pipx
kwhatcher@kwhatcher-Precision-7710:~$ pipx install camset
  ERROR: Command errored out with exit status 1:
   command: /home/kwhatcher/.local/pipx/venvs/camset/bin/python /home/kwhatcher/.local/pipx/shared/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-_q6emlf5/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
       cwd: None
  Complete output (38 lines):
  Collecting setuptools
    Using cached setuptools-50.3.2-py3-none-any.whl (785 kB)
  Collecting wheel
    Using cached wheel-0.35.1-py2.py3-none-any.whl (33 kB)
  Collecting pycairo
    Using cached pycairo-1.20.0.tar.gz (344 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Building wheels for collected packages: pycairo
    Building wheel for pycairo (PEP 517): started
    Building wheel for pycairo (PEP 517): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /home/kwhatcher/.local/pipx/venvs/camset/bin/python /home/kwhatcher/.local/pipx/shared/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpvwcx2zh3
         cwd: /tmp/pip-install-v_y642_k/pycairo
    Complete output (15 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/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1.
    ----------------------------------------
    ERROR: Failed building wheel for pycairo
  Failed to build pycairo
  ERROR: Could not build wheels for pycairo which use PEP 517 and cannot be installed directly
  ----------------------------------------
ERROR: Command errored out with exit status 1: /home/kwhatcher/.local/pipx/venvs/camset/bin/python /home/kwhatcher/.local/pipx/shared/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-_q6emlf5/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo Check the logs for full command output.

Error installing camset.
  • pip
kwhatcher@kwhatcher-Precision-7710:~$ pip install camset
Collecting camset
  Using cached camset-0.0.11-py3-none-any.whl (66 kB)
Collecting opencv-python
  Using cached opencv_python-4.4.0.46-cp38-cp38-manylinux2014_x86_64.whl (49.5 MB)
Collecting PyGObject
  Using cached PyGObject-3.38.0.tar.gz (712 kB)
  Installing build dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /home/kwhatcher/.pyenv/versions/3.8.3/bin/python3 /home/kwhatcher/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-p9_85o11/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
       cwd: None
  Complete output (38 lines):
  Collecting setuptools
    Using cached setuptools-50.3.2-py3-none-any.whl (785 kB)
  Collecting wheel
    Using cached wheel-0.35.1-py2.py3-none-any.whl (33 kB)
  Collecting pycairo
    Using cached pycairo-1.20.0.tar.gz (344 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Building wheels for collected packages: pycairo
    Building wheel for pycairo (PEP 517): started
    Building wheel for pycairo (PEP 517): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /home/kwhatcher/.pyenv/versions/3.8.3/bin/python3 /home/kwhatcher/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpz99nsbo4
         cwd: /tmp/pip-install-xgfrb23z/pycairo
    Complete output (15 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/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo
    running build_ext
    Package cairo was not found in the pkg-config search path.
    Perhaps you should add the directory containing `cairo.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'cairo' found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1.
    ----------------------------------------
    ERROR: Failed building wheel for pycairo
  Failed to build pycairo
  ERROR: Could not build wheels for pycairo which use PEP 517 and cannot be installed directly
  ----------------------------------------
ERROR: Command errored out with exit status 1: /home/kwhatcher/.pyenv/versions/3.8.3/bin/python3 /home/kwhatcher/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-p9_85o11/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo Check the logs for full command output.
@kerryhatcher kerryhatcher changed the title install fails on pycairo dependancy Install fails on pycairo dependancy Nov 30, 2020
@azeam
Copy link
Owner

azeam commented Nov 30, 2020

It seems something changed recently (and hopefully temporarily) as I haven't experienced this before, but while experimenting package dependencies for the recent PR #7 I caught this error as well. Not sure exactly which package that solved it, but did you see the updated install suggestion in readme.md, namely sudo apt-get install libcairo2-dev libgirepository1.0-dev. See if that works, otherwise I will try to narrow it down better.

@kerryhatcher
Copy link
Contributor Author

I had tried that before I opened the issue, but just ran it again just to double check and apt reports those are already installed.

Does make me feel better that I'm not just doing something super noobish ;)

@azeam
Copy link
Owner

azeam commented Nov 30, 2020

Hm, I re-tested a bit and for me sudo apt-get remove libcairo2-dev libgirepository1.0-dev && pip uninstall pycairo camset PyGOjbect && pip install camset --no-cache gives me an identical error message as you posted above, but sudo apt-get install libcairo2-dev libgirepository1.0-dev && pip install camset --no-cache works. This is, however, not a clean Ubuntu install so it's possible that I have some other non-default package installed, but I think those should be enough. What is your output of pkg-config --variable pc_path pkg-config and echo $PKG_CONFIG_PATH ?

@kerryhatcher
Copy link
Contributor Author

It would seem that $PKG_CONFIG_PATH was not set, it echos a blank line. I noticed that the output of pkg-config --variable pc_path pkg-config referenced linuxbrew directories. I used brew to setup python and pyenv (along with lots of other non related things).

I tried installing the brew versions of the dependencies and that seemed to do the trick.
brew install cairo pkg-config pygobject3 gtk+3

Once that finished (its a huge install with a crazy number of sub dependencies) both pipx install camset and pip install camset --no-cache worked just fine. App seems to work great as well.

If you're open to it I can fork the repo and add some information for Brew users like myself to the docs and open a PR. Just let me know.

Thanks!!!!

camset_works

@azeam
Copy link
Owner

azeam commented Dec 1, 2020

Great, glad you managed to get it working! :) And you are more than welcome to send a PR with Brew instructions, I have no experience with that, so it would be helpful!

kerryhatcher added a commit to kerryhatcher/camset that referenced this issue Dec 2, 2020
@azeam azeam closed this as completed in #9 Dec 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants