如何安装cairocffi?

问题描述 投票:10回答:3

如何通过q​​azxswpoi安装cairocffi

pip是基于CFFI的cairocffi Pycairo替代品。

我正在尝试在Ubuntu 14.04上安装它:

https://github.com/SimonSapin/cairocffi

我尝试使用标准pip命令进行安装,但我得到了这个:

alvas@ubi:~$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"
NAME="Ubuntu"
VERSION="14.04.2 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.2 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

我手动检查了权限,我意识到没有写访问权限。为什么会这样?为什么sudo不会覆盖权限?

$ sudo pip install cairocffi
The directory '/home/alvas/.cache/pip/log' or its parent directory is not owned by the current user and the debug log has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/alvas/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/alvas/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting cairocffi
  Downloading cairocffi-0.6.tar.gz (75kB)
    100% |████████████████████████████████| 77kB 34kB/s 
Collecting cffi>=0.6 (from cairocffi)
  Downloading cffi-0.9.2.tar.gz (209kB)
    100% |████████████████████████████████| 212kB 97kB/s 
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python3.4/dist-packages (from cffi>=0.6->cairocffi)
Installing collected packages: cffi, cairocffi
  Running setup.py install for cffi
    Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-d3kjzf__/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ll323a3c-record/install-record.txt --single-version-externally-managed --compile:
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libffi' found
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.4
    creating build/lib.linux-x86_64-3.4/cffi
    copying cffi/commontypes.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/lock.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/api.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/verifier.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/__init__.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/cparser.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/gc_weakref.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/model.py -> build/lib.linux-x86_64-3.4/cffi
    copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.4/cffi
    running build_ext
    building '_cffi_backend' extension
    creating build/temp.linux-x86_64-3.4
    creating build/temp.linux-x86_64-3.4/c
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.4m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.4/c/_cffi_backend.o
    c/_cffi_backend.c:13:17: fatal error: ffi.h: No such file or directory
     #include <ffi.h>
                     ^
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
    Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-d3kjzf__/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ll323a3c-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-d3kjzf__/cffi

当我尝试$ ls -la .cache/pip/log/ total 60 drwxrwxr-x 2 alvas alvas 4096 Feb 3 10:51 . drwx------ 4 alvas alvas 4096 Apr 12 23:16 .. -rw-rw-r-- 1 alvas alvas 49961 Apr 12 23:18 debug.log 时,我得到了:

sudo -H pip install cairoffi

正如@MattDMo建议的那样,我已经尝试过sudo -H pip install cairocffi Collecting cairocffi Using cached cairocffi-0.6.tar.gz Collecting cffi>=0.6 (from cairocffi) Downloading cffi-0.9.2.tar.gz (209kB) 100% |████████████████████████████████| 212kB 29kB/s Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python3.4/dist-packages (from cffi>=0.6->cairocffi) Installing collected packages: cffi, cairocffi Running setup.py install for cffi Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-2sv6pbsp/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-xk4kkjrj-record/install-record.txt --single-version-externally-managed --compile: Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing `libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing `libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing `libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing `libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found Package libffi was not found in the pkg-config search path. Perhaps you should add the directory containing `libffi.pc' to the PKG_CONFIG_PATH environment variable No package 'libffi' found running install running build running build_py creating build creating build/lib.linux-x86_64-3.4 creating build/lib.linux-x86_64-3.4/cffi copying cffi/commontypes.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/lock.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/api.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/verifier.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/__init__.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/cparser.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/gc_weakref.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/model.py -> build/lib.linux-x86_64-3.4/cffi copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.4/cffi running build_ext building '_cffi_backend' extension creating build/temp.linux-x86_64-3.4 creating build/temp.linux-x86_64-3.4/c x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.4m -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.4/c/_cffi_backend.o c/_cffi_backend.c:13:17: fatal error: ffi.h: No such file or directory #include <ffi.h> ^ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-2sv6pbsp/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-xk4kkjrj-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-2sv6pbsp/cffi ,但它仍然无法解决:

apt-get install libffi

但是包管理器上没有任何alvas@ubi:~$ sudo apt-get install libffi libffi-dev Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libffi ,所以我尝试过libffi

libffi-dev

它成功安装alvas@ubi:~$ sudo apt-get install libffi-dev Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: libffi-dev 0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded. Need to get 99.8 kB of archives. After this operation, 323 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libffi-dev amd64 3.1~rc1+r3.0.13-12 [99.8 kB] Fetched 99.8 kB in 1s (76.3 kB/s) Selecting previously unselected package libffi-dev:amd64. (Reading database ... 492855 files and directories currently installed.) Preparing to unpack .../libffi-dev_3.1~rc1+r3.0.13-12_amd64.deb ... Unpacking libffi-dev:amd64 (3.1~rc1+r3.0.13-12) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Processing triggers for doc-base (0.10.5) ... Processing 1 added doc-base file... Processing triggers for install-info (5.2.0.dfsg.1-2) ... Setting up libffi-dev:amd64 (3.1~rc1+r3.0.13-12) ... libffi-dev仍然没有安装:

cairoffi
python install pip cairo python-cffi
3个回答
14
投票

它在错误消息中是正确的:

alvas@ubi:~$ sudo -H pip install cairoffi
Collecting cairoffi
  Could not find a version that satisfies the requirement cairoffi (from versions: )
  No matching distribution found for cairoffi
alvas@ubi:~$ sudo -H pip3 install cairoffi
Collecting cairoffi
  Could not find a version that satisfies the requirement cairoffi (from versions: )
  No matching distribution found for cairoffi

No package 'libffi' found 安装工作之前,您需要通过发行版的软件包管理器(libffilibffi-dev等)安装yumapt-get。从平台到平台,它们的名称可能略有不同。


7
投票

对我来说,在使用python 3.5.3rc1的Windows 10上,pip失败了。做pip install cairocffi足以让它成功。


1
投票

即使安装了pip install cffi,也无法使其正常工作。最后得到了它:

libffi6 libffi-dev

pip3 install -U pip pip3 install -U setuptools pip3 install --no-cache-dir cairocffi 是诀窍,感谢:--no-cache-dir

© www.soinside.com 2019 - 2024. All rights reserved.