Python3 правильно установить PyCurl - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь установить pycurl на свой ubuntu 16.04 LTS, модуль выглядит установленным, но выдает сообщение «Нет модуля с именем pycurl», когда я пытаюсь импортировать его из python. моя 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'

Есть идеи?

# update

при попытке 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.

1 Ответ

0 голосов
/ 21 августа 2020

Я наконец исправил эту ошибку, установив libpython3.7-dev

sudo apt-get install libpython3.7-dev
...