Anu Alex
Anu Alex

Reputation: 240

Cannot install mysqlclient

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 https://files.pythonhosted.org/packages/d0/97/7326248ac8d5049968bf4ec708a5d3d4806e412a42e74160d7f266a3e03a/mysqlclient-1.4.6.tar.gz
    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/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fgg27tgk/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\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/__init__.py", line 20, in <module>
        from setuptools.dist import Distribution, Feature
      File "/home/LPython/my_env/lib/python3.8/site-packages/setuptools/dist.py", line 35, in <module>
        from setuptools import windows_support
      File "/home/LPython/my_env/lib/python3.8/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/usr/local/lib/python3.8/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Upvotes: 6

Views: 15093

Answers (3)

Anu Alex
Anu Alex

Reputation: 240

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

#wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

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



Upvotes: 2

Kalana
Kalana

Reputation: 6173

ModuleNotFoundError: No module named '_ctypes' occurring because of python bug. In latest version of python this bug was solved.

  • There for you have to update your pip
  • Next you have to run this yum install libffi-deve or sudo dnf install libffi-devel
  • After that run pip3 install mysqlclient or sudo yum install python36u-devel mysql-devel to install mysqlclient.

Upvotes: 2

dhamo
dhamo

Reputation: 555

I think libffi-dev libary file is missing in your system/server. use the below command in order to check library installed or not

apt-cache search libffi

to install libffi-dev

sudo apt-get install -y libffi-dev

After that try

pip3 install mysqlclient

Approach 2

sudo apt-get install python-dev default-libmysqlclient-dev
sudo apt-get install python3-dev
pip install mysqlclient

Upvotes: 14

Related Questions