背景
- 芯片:MacBook Pro M3
- Mac OS: 14.1
- Python 2.7
- pip==20.3.4
执行pip install pycurl==7.19.0
总是报错,例如:
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting pycurl==7.19.0
Downloading http://mirrors.aliyun.com/pypi/packages/11/73/abcfbbb6e1dd7087fa53042c301c056c11264e8a737a4688f834162d731e/pycurl-7.19.0.tar.gz (70 kB)
|████████████████████████████████| 70 kB 622 kB/s
Building wheels for collected packages: pycurl
Building wheel for pycurl (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /Users/skyler/Documents/py-env/venv2.7/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/setup.py'"'"'; __file__='"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/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 /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-wheel-s5C8B2
cwd: /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/
Complete output (25 lines):
Using curl-config (libcurl 8.1.2)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-2.7
creating build/lib.macosx-10.9-x86_64-2.7/curl
copying python/curl/__init__.py -> build/lib.macosx-10.9-x86_64-2.7/curl
running build_ext
building 'pycurl' extension
creating build/temp.macosx-10.9-x86_64-2.7
creating build/temp.macosx-10.9-x86_64-2.7/src
gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_CURL_SSL=1 -I/Users/skyler/Documents/py-env/venv2.7/include/python2.7 -c src/pycurl.c -o build/temp.macosx-10.9-x86_64-2.7/src/pycurl.o
src/pycurl.c:85:4: warning: "libcurl was compiled with SSL support, but configure could not determine which " "library was used; thus no SSL crypto locking callbacks will be set, which may " "cause random crashes on SSL requests" [-W#warnings]
# warning \
^
src/pycurl.c:2351:9: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
int ret;
^
2 warnings generated.
gcc -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.9-x86_64-2.7/src/pycurl.o -lcurl -o build/lib.macosx-10.9-x86_64-2.7/pycurl.so /usr/lib/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@
clang: error: no such file or directory: '/usr/lib/libcurl.@libext@'
clang: error: no such file or directory: '@LDFLAGS@'
clang: error: no such file or directory: '@LIBCURL_LIBS@'
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pycurl
Running setup.py clean for pycurl
Failed to build pycurl
Installing collected packages: pycurl
Running setup.py install for pycurl ... error
ERROR: Command errored out with exit status 1:
command: /Users/skyler/Documents/py-env/venv2.7/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/setup.py'"'"'; __file__='"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-record-x0_TkQ/install-record.txt --single-version-externally-managed --compile --install-headers /Users/skyler/Documents/py-env/venv2.7/include/site/python2.7/pycurl
cwd: /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/
Complete output (25 lines):
Using curl-config (libcurl 8.1.2)
running install
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-2.7
creating build/lib.macosx-10.9-x86_64-2.7/curl
copying python/curl/__init__.py -> build/lib.macosx-10.9-x86_64-2.7/curl
running build_ext
building 'pycurl' extension
creating build/temp.macosx-10.9-x86_64-2.7
creating build/temp.macosx-10.9-x86_64-2.7/src
gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -DHAVE_CURL_SSL=1 -I/Users/skyler/Documents/py-env/venv2.7/include/python2.7 -c src/pycurl.c -o build/temp.macosx-10.9-x86_64-2.7/src/pycurl.o
src/pycurl.c:85:4: warning: "libcurl was compiled with SSL support, but configure could not determine which " "library was used; thus no SSL crypto locking callbacks will be set, which may " "cause random crashes on SSL requests" [-W#warnings]
# warning \
^
src/pycurl.c:2351:9: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
int ret;
^
2 warnings generated.
gcc -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.9-x86_64-2.7/src/pycurl.o -lcurl -o build/lib.macosx-10.9-x86_64-2.7/pycurl.so /usr/lib/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@
clang: error: no such file or directory: '/usr/lib/libcurl.@libext@'
clang: error: no such file or directory: '@LDFLAGS@'
clang: error: no such file or directory: '@LIBCURL_LIBS@'
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/skyler/Documents/py-env/venv2.7/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/setup.py'"'"'; __file__='"'"'/private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-install-vkv4WA/pycurl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-record-x0_TkQ/install-record.txt --single-version-externally-managed --compile --install-headers /Users/skyler/Documents/py-env/venv2.7/include/site/python2.7/pycurl Check the logs for full command output.
解决方法
执行 brew install curl
。 老版本可以安装curl-openssl
(Formula curl-openssl was renamed to curl.)
export PATH="$(brew --prefix curl)/bin:$PATH"
export LDFLAGS="-L$(brew --prefix curl)/lib"
export CPPFLAGS="-I$(brew --prefix curl)/include"
这样之后可以安装成功
pip install --no-cache-dir pycurl==7.19.0
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting pycurl==7.19.0
Downloading http://mirrors.aliyun.com/pypi/packages/11/73/abcfbbb6e1dd7087fa53042c301c056c11264e8a737a4688f834162d731e/pycurl-7.19.0.tar.gz (70 kB)
|████████████████████████████████| 70 kB 391 kB/s
Building wheels for collected packages: pycurl
Building wheel for pycurl (setup.py) ... done
Created wheel for pycurl: filename=pycurl-7.19.0-cp27-cp27m-macosx_10_9_x86_64.whl size=109152 sha256=4f3f73b5d53af44bd81bcb1819b1f2bc7154807de263146c5ac4cf249a81395f
Stored in directory: /private/var/folders/90/2z2_gp3s4z737mq6fyxsw6g80000gn/T/pip-ephem-wheel-cache-zNstBM/wheels/10/09/3a/dec6320ee0fa59e8ecb83edf2b5fba673031c6ec2df31e7344
Successfully built pycurl
Installing collected packages: pycurl
Successfully installed pycurl-7.19.0