我尝试安装quandl
pip install quandl
但我收到了以下错误:
Collecting quandl
Using cached Quandl-3.0.1-py2.py3-none-any.whl
Collecting pyOpenSSL (from quandl)
Using cached pyOpenSSL-16.0.0-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): pyasn1 in /usr/local/lib/python3.2/dist-packages (from quandl)
Collecting more-itertools (from quandl)
Using cached more-itertools-2.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): six in ./.local/lib/python3.2/site-packages (from quandl)
Collecting ndg-httpsclient (from quandl)
Using cached ndg_httpsclient-0.4.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.8 in /usr/local/lib/python3.2/dist-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in ./.local/lib/python3.2/site-packages (from quandl)
Requirement already satisfied (use --upgrade to upgrade): pandas>=0.14 in ./.local/lib/python3.2/site-packages (from quandl)
Collecting requests>=2.7.0 (from quandl)
Using cached requests-2.10.0-py2.py3-none-any.whl
Collecting inflection>=0.3.1 (from quandl)
Using cached inflection-0.3.1.tar.gz
Collecting cryptography>=1.3 (from pyOpenSSL->quandl)
Using cached cryptography-1.4.tar.gz
Requirement already satisfied (use --upgrade to upgrade): pytz>=2011k in ./.local/lib/python3.2/site-packages (from pandas>=0.14->quandl)
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): setuptools>=11.3 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): enum34 in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in /usr/local/lib/python3.2/dist-packages (from cryptography>=1.3->pyOpenSSL->quandl)
Collecting cffi>=1.4.1 (from cryptography>=1.3->pyOpenSSL->quandl)
Using cached cffi-1.7.0.tar.gz
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python3.2/dist-packages (from cffi>=1.4.1->cryptography>=1.3->pyOpenSSL->quandl)
Installing collected packages: cffi, cryptography, pyOpenSSL, more-itertools, ndg-httpsclient, requests, inflection, quandl
Running setup.py install for cffi
Complete output from command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-svu9h7/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-lo33rp-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-i686-3.2
creating build/lib.linux-i686-3.2/cffi
copying cffi/cparser.py -> build/lib.linux-i686-3.2/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-i686-3.2/cffi
copying cffi/commontypes.py -> build/lib.linux-i686-3.2/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-i686-3.2/cffi
copying cffi/verifier.py -> build/lib.linux-i686-3.2/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-i686-3.2/cffi
copying cffi/model.py -> build/lib.linux-i686-3.2/cffi
copying cffi/api.py -> build/lib.linux-i686-3.2/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-i686-3.2/cffi
copying cffi/lock.py -> build/lib.linux-i686-3.2/cffi
copying cffi/ffiplatform.py -> build/lib.linux-i686-3.2/cffi
copying cffi/__init__.py -> build/lib.linux-i686-3.2/cffi
copying cffi/vengine_gen.py -> build/lib.linux-i686-3.2/cffi
copying cffi/recompiler.py -> build/lib.linux-i686-3.2/cffi
copying cffi/_cffi_include.h -> build/lib.linux-i686-3.2/cffi
copying cffi/parse_c_type.h -> build/lib.linux-i686-3.2/cffi
copying cffi/_embedding.h -> build/lib.linux-i686-3.2/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-i686-3.2
creating build/temp.linux-i686-3.2/c
gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -DUSE__THREAD -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python3.2mu -c c/_cffi_backend.c -o build/temp.linux-i686-3.2/c/_cffi_backend.o
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-svu9h7/cffi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-lo33rp-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-svu9h7/cffi
You are using pip version 7.1.2, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
答案 0 :(得分:3)
您需要libffi
以及开发标题,因此cffi
可以针对它进行编译。您可以通过执行apt-get install libffi-dev
或yum install libffi-devel
(或针对不太常见的发行版的其他各种命令)来实现此目的。
但是,如果你升级到最新的pip(正如你在那里看到的那样),你可以在没有编译器或libffi的情况下安装它!这是因为我今天早上上传了cffi
manylinux1个轮子。这些轮子是预编译的,带有捆绑的libffi。如果您正在使用符合条件的分发点,则会自动使用这些轮子(如果您使用的是8.1+),而不能使用它们的分发将继续需要正常编译。
此外,由于您的日志表明您还在安装cryptography
,因此需要openssl-devel
(在Red Hat衍生品上)或libssl-dev
在Debian / Ubuntu衍生品上才能成功编译。 (如果你还没有编译任何python包,那么你还需要python-devel
或python-dev
)。