【发布时间】:2020-11-27 09:05:29
【问题描述】:
我正在尝试在我的 ubuntu 16.04 LTS 上安装 pycurl,该模块看起来已安装,但当我尝试从 python 导入它时,它给了我“没有名为 pycurl 的模块”。
我的python3版本是3.7.8
pip3 freeze |grep pycurl告诉我安装了7.43版pycurl==7.43.0
我已经运行成功了:
apt-get update
apt-get install python3-pycurl
python3 -m pip install pycurl 给我:
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pycurl in /usr/lib/python3/dist-packages (7.43.0)
python3 -m easy_install pycurl 返回:
WARNING: The easy_install command is deprecated and will be removed in a future version.
Searching for pycurl
Best match: pycurl 7.43.0
Adding pycurl 7.43.0 to easy-install.pth file
Using /usr/lib/python3/dist-packages
Processing dependencies for pycurl
Finished processing dependencies for pycurl
在所有这些之后,当我尝试导入模块时,我得到了这个:
>>> import pycurl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pycurl'
有什么想法吗?
#更新
当我尝试pip3 -v install pycurl --upgrade 时出现此错误
File "/home/user/.local/lib/python3.7/site-
packages/pip/_internal/utils/subprocess.py", line 242, in
call_subprocess
raise InstallationError(exc_msg)
pip._internal.exceptions.InstallationError: Command errored out with
exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools,
tokenize; sys.argv[0] = '"'"'/tmp/pip-install-
jrmswlpf/pycurl/setup.py'"'"'; __file__='"'"'/tmp/pip-install-
jrmswlpf/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 /tmp/pip-record-0mjigz74/install-record.txt --single-
version-externally-managed --user --prefix= --compile --install-
headers
/home/user/.local/include/python3.7m/pycurl Check the logs for full
command output.
Removed build tracker: '/tmp/pip-req-tracker-w67dg62p'
#update 2:
我运行这些命令:sudo apt-get purge python3-pycurl 然后pip3 freeze|grep pycurl 什么也不返回=> pycurl 已卸载
然后,我运行pip3 install pycurl
pip3 install pycurl
Defaulting to user installation because normal site-packages is not
writeable
Collecting pycurl
Using cached pycurl-7.43.0.5.tar.gz (216 kB)
Building wheels for collected packages: pycurl
Building wheel for pycurl (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize;
sys.argv[0] = '"'"'/tmp/pip-install-umytzbub/pycurl/setup.py'"'"';
__file__='"'"'/tmp/pip-install-
umytzbub/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 /tmp/pip-wheel-31uhzig0
cwd: /tmp/pip-install-umytzbub/pycurl/
Complete output (18 lines):
Using curl-config (libcurl 7.47.0)
Using SSL library: GnuTLS
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/curl
copying python/curl/__init__.py -> build/lib.linux-x86_64-3.7/curl
running build_ext
building 'pycurl' extension
creating build/temp.linux-x86_64-3.7
creating build/temp.linux-x86_64-3.7/src
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -
DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -
Werror=format-security -g -fstack-protector-strong -Wformat -
Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -
DPYCURL_VERSION="7.43.0.5" -DHAVE_CURL_SSL=1 -DHAVE_CURL_GNUTLS=1 -
DHAVE_CURL_SSL=1 -I/usr/include/python3.7m -c src/docstrings.c -o
build/temp.linux-x86_64-3.7/src/docstrings.o
In file included from src/docstrings.c:4:0:
src/pycurl.h:5:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pycurl
Running setup.py clean for pycurl
Failed to build pycurl
DEPRECATION: Could not build wheels for pycurl which do not use PEP
517. pip will fall back to legacy 'setup.py install' for these. pip
21.0 will remove support for this functionality. A possible
replacement is to fix the wheel build issue reported above. You can
find discussion regarding this at
https://github.com/pypa/pip/issues/8368.
Installing collected packages: pycurl
Running setup.py install for pycurl ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize;
sys.argv[0] = '"'"'/tmp/pip-install-umytzbub/pycurl/setup.py'"'"';
__file__='"'"'/tmp/pip-install-
umytzbub/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 /tmp/pip-record-62fg7a92/install-
record.txt --single-version-externally-managed --user --prefix= --
compile --install-headers
/home/user/.local/include/python3.7m/pycurl
cwd: /tmp/pip-install-umytzbub/pycurl/
Complete output (18 lines):
Using curl-config (libcurl 7.47.0)
Using SSL library: GnuTLS
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/curl
copying python/curl/__init__.py -> build/lib.linux-x86_64-3.7/curl
running build_ext
building 'pycurl' extension
creating build/temp.linux-x86_64-3.7
creating build/temp.linux-x86_64-3.7/src
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -
DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -
Werror=format-security -g -fstack-protector-strong -Wformat -
Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -
DPYCURL_VERSION="7.43.0.5" -DHAVE_CURL_SSL=1 -DHAVE_CURL_GNUTLS=1 -
DHAVE_CURL_SSL=1 -I/usr/include/python3.7m -c src/docstrings.c -o
build/temp.linux-x86_64-3.7/src/docstrings.o
In file included from src/docstrings.c:4:0:
src/pycurl.h:5:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -
c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-
install-umytzbub/pycurl/setup.py'"'"'; __file__='"'"'/tmp/pip-
install-umytzbub/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 /tmp/pip-record-62fg7a92/install-
record.txt --single-version-externally-managed --user --prefix= --
compile --install-headers
/home/user/.local/include/python3.7m/pycurl Check the logs for full
command output.
【问题讨论】:
-
请试试这个答案 URL:stackoverflow.com/a/38072164/1489444 并告诉我答案是什么。
-
@ViswanathPolaki 你是什么意思?用 pip 安装?我已经尝试过,如问题所示,但不起作用。 pydocusign 给了我 2.2 版
-
测试时使用python3代替python。
-
嗨@D.SM,你是什么意思?我一直在使用 python3
-
好的。删除你添加的两个 pycurl 安装,然后选择是要使用 apt 还是 pip,安装一次 pycurl,用结果更新问题。
标签: python-3.x pycurl