Python3 properly install PyCurl
Asked Answered
S

1

7

I'm trying to install pycurl on my ubuntu 16.04 LTS, the module looks installed but it gives me "No module named pycurl" when I try to import it from python. my python3 version is 3.7.8

pip3 freeze |grep pycurl tells me that version 7.43 is installedpycurl==7.43.0

I already run successfully :

apt-get update
apt-get install python3-pycurl

python3 -m pip install pycurl gives me :

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pycurl in /usr/lib/python3/dist-packages (7.43.0)

and python3 -m easy_install pycurl returns :

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

after all of these I get this when I try to import the module :

>>> import pycurl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pycurl'

Any idea ?

#update

when I try pip3 -v install pycurl --upgrade I get this error

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 : I run those commands : sudo apt-get purge python3-pycurl then pip3 freeze|grep pycurl returns nothing => pycurl is uninstalled

then, I run 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.
Saran answered 7/8, 2020 at 3:33 Comment(7)
Please try this answer URL: https://mcmap.net/q/1624728/-how-to-resolve-importerror-quot-no-module-named-pycurl-quot and let me know what is the response.Wisteria
@ViswanathPolaki what do you mean ? the install with pip ? I've already tried as shown in the question, but doesn't work. pydocusign gives me version 2.2Saran
Use python3 instead of python when you are testing.Larianna
hi @D.SM, what do you mean ? I'm always using python3Saran
Okay. Delete both of the pycurl installations you added, then pick whether you want to use apt or pip, install pycurl one time, update question with results.Larianna
hi @D.SM, just did what you suggested. I updated the question (update 2). thanks for your helpSaran
Now you can follow official pycurl installation instructions where they talk about dev packages.Larianna
S
5

I finally fixed this error by installing libpython3.7-dev

sudo apt-get install libpython3.7-dev
Saran answered 21/8, 2020 at 10:44 Comment(1)
And on Windows ?Concernment

© 2022 - 2024 — McMap. All rights reserved.