Python Forum

Full Version: Cannot install mysqlclient
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am using python3.8 in django framework, for that I have to install mysqlclient. But error is coming when I try

pip3 install mysqlclient

output like this as error.
Collecting mysqlclient Using cached ERROR: Command errored out with exit status 1: command: /home/LPython/my_env/bin/python3.8 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fgg27tgk/mysqlclient/'"'"'; __file__='"'"'/tmp/pip-install-fgg27tgk/mysqlclient/'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);'"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-fgg27tgk/mysqlclient/pip-egg-info cwd: /tmp/pip-install-fgg27tgk/mysqlclient/ Complete output (11 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/LPython/my_env/lib/python3.8/site-packages/setuptools/", line 20, in <module> from setuptools.dist import Distribution, Feature File "/home/LPython/my_env/lib/python3.8/site-packages/setuptools/", line 35, in <module> from setuptools import windows_support File "/home/LPython/my_env/lib/python3.8/site-packages/setuptools/", line 2, in <module> import ctypes File "/usr/local/lib/python3.8/ctypes/", line 7, in <module> from _ctypes import Union, Structure, Array ModuleNotFoundError: No module named '_ctypes' ---------------------------------------- ERROR: Command errored out with exit status 1: python egg_info Check the logs for full command output.
1. did you install the prerequisites, as advised:
2. why not use the official MySQL connector for python:
Yes! I have installed Prerequisites as mentioned in the site. But still the error is coming Sad . I would like to prefer mysqlclient because mysqlclient is faster (sometimes > 10x faster).
Do I need to set libffi any specific locations?
My problem is solved. When I installed python-3.8.0, I did not compile it, that was the problem. I am using Centos7, so I went to the root of the terminal, first install prerequisites for Python before installing it.

# sudo yum install gcc openssl-devel bzip2-devel libffi-devel

download latest version


Now extract the downloaded package.

Compile Python Source

#cd Python-3.8.0
#sudo ./configure --enable-optimizations

make altinstall is used to prevent replacing the default python binary file /usr/bin/python.

#sudo make altinstall

remove downloaded source archive file from your system

#sudo rm Python-3.8.0.tgz

Check Python Version

#python3.8 -V 

Then I could be able to install mysqlclient by
# pip3 install mysqlclient
have had the same issue as lower version of mysqlclient was installed due to pymysql.

OS: Linux Mint 19.1

Python: 3.6.8

Django: 2.2.2

Uninstall mysqlclient: pip3 uninstall mysqlclient
Uninstall pymysql: pip3 uninstall pymysql
Install mysqlclient: pip3 install mysqlclient