简体   繁体   English

没有名为 cairo 的模块 - python 和 pip

[英]no module named cairo - python and pip

I am trying to build openuds and I get the error no module name cairo , I surfed a bit and found installing pycairo will solve it.我正在尝试构建openuds并且收到错误no module name cairo ,我浏览了一下,发现安装pycairo可以解决它。 1) How do I fix this install error? 1) 如何修复此安装错误?

python manage.py createcachetable
Traceback (most recent call last):
  File "manage.py", line 9, in <module>
    execute_from_command_line(sys.argv)
  File "/home/hari/openuds/testuds-master/Python-2.7.14/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/home/hari/openuds/testuds-master/Python-2.7.14/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/home/hari/openuds/testuds-master/Python-2.7.14/env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/hari/openuds/testuds-master/Python-2.7.14/env/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/home/hari/openuds/testuds-master/server/src/uds/__init__.py", line 78, in ready
    from . import REST  # To make sure REST initializes all what it needs
  File "/home/hari/openuds/testuds-master/server/src/uds/REST/__init__.py", line 210, in <module>
    Dispatcher.initialize()
  File "/home/hari/openuds/testuds-master/server/src/uds/REST/__init__.py", line 206, in initialize
    __import__(__name__ + '.' + package + '.' + name, globals(), locals(), [], -1)
  File "/home/hari/openuds/testuds-master/server/src/uds/REST/methods/reports.py", line 38, in <module>
    from uds import reports
  File "/home/hari/openuds/testuds-master/server/src/uds/reports/__init__.py", line 80, in <module>
    __init__()
  File "/home/hari/openuds/testuds-master/server/src/uds/reports/__init__.py", line 76, in __init__
    __import__(name, globals(), locals(), [])
  File "/home/hari/openuds/testuds-master/server/src/uds/reports/stats/__init__.py", line 35, in <module>
    from .login import StatsReportLogin, StatsReportLoginCSV
  File "/home/hari/openuds/testuds-master/server/src/uds/reports/stats/login.py", line 45, in <module>
    import cairo
ImportError: No module named cairo

so I tried to install pycairo and I get the following error, Could someone help me, please所以我尝试安装 pycairo ,但出现以下错误,有人可以帮我吗?

python -m pip install pycairo 
Collecting pycairo
  Using cached https://files.pythonhosted.org/packages/a6/54/23d6cf3e8d8f1eb30e0e58f171b6f62b2ea75c024935492373639a1a08e4/pycairo-1.18.0.tar.gz
Building wheels for collected packages: pycairo
  Running setup.py bdist_wheel for pycairo ... error
  Complete output from command /home/hari/openuds/testuds-master/Python-2.7.14/env/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-_hOJAx/pycairo/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-sp61DQ --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/cairo
  copying cairo/__init__.py -> build/lib.linux-x86_64-2.7/cairo
  copying cairo/__init__.pyi -> build/lib.linux-x86_64-2.7/cairo
  copying cairo/py.typed -> build/lib.linux-x86_64-2.7/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.13.1']' returned non-zero exit status 1

  ----------------------------------------
  Failed building wheel for pycairo
  Running setup.py clean for pycairo
Failed to build pycairo
Installing collected packages: pycairo
  Running setup.py install for pycairo ... error
    Complete output from command /home/hari/openuds/testuds-master/Python-2.7.14/env/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-_hOJAx/pycairo/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-SBY9Xo/install-record.txt --single-version-externally-managed --compile --install-headers /home/hari/openuds/testuds-master/Python-2.7.14/env/include/site/python2.7/pycairo:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-2.7/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-2.7/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-2.7/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.13.1']' returned non-zero exit status 1

    ----------------------------------------
Command "/home/hari/openuds/testuds-master/Python-2.7.14/env/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-_hOJAx/pycairo/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-SBY9Xo/install-record.txt --single-version-externally-managed --compile --install-headers /home/hari/openuds/testuds-master/Python-2.7.14/env/include/site/python2.7/pycairo" failed with error code 1 in /tmp/pip-install-_hOJAx/pycairo/

2) Also in Java we have maven which will install the dependencies by its own like this any other tool is available for building python packages? 2)同样在Java中,我们有maven,它会像这样自己安装依赖项,还有其他工具可用于构建python包吗?

Pycairo is a Python bindings for the cairo graphics library . Pycairo 是cairo 图形库的 Python 绑定。 Pycairo doesn't provide precompiled binary wheels so pip has to compile it from sources. Pycairo不提供预编译的二进制轮子,因此pip必须从源代码编译它。 And to compile Pycairo you need cairo installed.要编译 Pycairo,您需要安装 cairo。 So start with所以开始

apt install libcairo2

Or install the binding form your distribution:或者从你的发行版安装绑定:

apt install python-cairo

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM