troyz
troyz

Reputation: 1395

No module named 'pymysql'

I'm trying to use PyMySQL on Ubuntu.

I've installed pymysql using both pip and pip3 but every time I use import pymysql, it returns ImportError: No module named 'pymysql'

I'm using Ubuntu 15.10 64-bit and Python 3.5.

The same .py works on Windows with Python 3.5, but not on Ubuntu.

Upvotes: 77

Views: 294235

Answers (20)

Lherben G
Lherben G

Reputation: 383

When attempting to execute c = connection.cursor() within the Python shell in the context of my Django project, I encountered the same error.

enter image description here

pymysql has already been installed using pip in my environment

enter image description here

I have discovered that it's essential to install the PyMySQL package using the Python interpreter associated with the project's environment. This ensures the package is correctly installed and readily available for import within the project's context.

To verify that you're using the correct Python interpreter, you can follow these steps

enter image description here

In my case, I am using Python 3.12.2, which corresponds to the command: C:\Users\brand\AppData\Local\Programs\Python\Python312\python.exe.

Since I'm using Git Bash in VSCode, the appropriate command to install PyMySQL would be: C:/Users/brand/AppData/Local/Programs/Python/Python312/python.exe -m pip install pymysql. Executing this command in the Git Bash terminal will install the PyMySQL package.

enter image description here

I successfully resolved the issue by directly installing PyMySQL using the Python interpreter.

A Python shell is initiated within a Django project, facilitating the establishment of a database connection. This setup enables interaction with the database through Django's ORM (Object-Relational Mapper).

enter image description here

Upvotes: 0

CHOI
CHOI

Reputation: 162

For anaconda user,

I got this error message. ModuleNotFoundError: No module named 'pymysql'

So tried 'pip install pymysql' but got below. Requirement already satisfied: pymysql

What worked for me is,

python file.py (NOT py file.py)

Upvotes: 0

hafiz031
hafiz031

Reputation: 2720

The following pymysql version worked for me:

pip install pymysql==1.0.2

Upvotes: 1

ruddy simonpour
ruddy simonpour

Reputation: 153

You just need to install:

python3 -m pip install PyMySQL

Upvotes: 1

Brad Ahrens
Brad Ahrens

Reputation: 5178

I ran into the same problem earlier, but solved it in a way slightly different from what we have here. So, I thought I'd add my way as well. Hopefully, it will help someone!

sudo apt-get install mysql-client didn't work for me. However, I have Homebrew already installed. So, instead, I tried:

brew install mysql-client

Now, I don't get the error any more.

Upvotes: 0

brnslzar_26
brnslzar_26

Reputation: 1

I tried installing pymysql on command prompt by typing

pip install pymysql

But it still dont work on my case, so I decided to try using the terminal IDE and it works.

Upvotes: 0

gibbone
gibbone

Reputation: 2700

Another common issue causing the error message to appear is related to conda environments in jupyter notebook and jupyter lab.

After successfully installing a module (pymysql in this case) in one environment, import may seem to fail because the environment has not been correctly registered. To solve this it is necessary to manually add kernels for each environment.

Solution and more details can be found here.

Upvotes: 0

hyang23
hyang23

Reputation: 1

I also got this error recently when using Anaconda on a Mac machine.

Here is what I found:

  1. After running python3 -m pip install PyMySql, pymysql module is under /Library/Python/3.7/site-packages
  2. Anaconda wants this module to be under /opt/anaconda3/lib/python3.8/site-packages

Therefore, after copying pymysql module to the designated path, it runs correctly.

Upvotes: 0

CHETAN Desai
CHETAN Desai

Reputation: 21

For windows or one using google colab, you can try this

!pip install pymysql
import pymysql

Upvotes: 2

Dev Pandey
Dev Pandey

Reputation: 1

if you are using SPYDER IDE , just try to restart the console or restart the IDE, it works

Upvotes: 0

Kenneth Watanabe
Kenneth Watanabe

Reputation: 186

To get around the problem, find out where pymysql is installed.

If for example it is installed in /usr/lib/python3.7/site-packages, add the following code above the import pymysql command:

import sys
sys.path.insert(0,"/usr/lib/python3.7/site-packages")
import pymysql

This ensures that your Python program can find where pymysql is installed.

Upvotes: 9

jason m
jason m

Reputation: 6835

fwiw, for a conda env:

 conda install -c anaconda pymysql 

Upvotes: 3

Yuqin Peng
Yuqin Peng

Reputation: 53

Just a note: for Anaconda install packages command:

  1. python setup.py install

Upvotes: 0

3kstc
3kstc

Reputation: 1965

After trying a few things, and coming across PyMySQL Github, this worked:

sudo pip install PyMySQL

And to import use:

import pymysql

Upvotes: 26

Etoneja
Etoneja

Reputation: 1083

Use:

import pymysql

Not:

import PyMySQL

That works for me.

Upvotes: 36

BigBadMe
BigBadMe

Reputation: 1852

I had this same problem just now, and found the reason was my editor (Visual Studio Code) was running against the wrong instance of python; I had it set to run again python bundled with tensorflow, I changed it to my Anaconda python and it worked.

Upvotes: 0

Mandeep Singh
Mandeep Singh

Reputation: 185

sudo apt-get install python3-pymysql

This command also works for me to install the package required for Flask app to tun on ubuntu 16x with WISG module on APACHE2 server.

BY default on WSGI uses python 3 installation of UBUNTU.

Anaconda custom installation won't work.

Upvotes: 0

tim-oh
tim-oh

Reputation: 718

  1. Make sure that you're working with the version of Python that think you are. Within Python run import sys and print(sys.version).

  2. Select the correct package manager to install pymysql with:

    • For Python 2.x sudo pip install pymysql.
    • For Python 3.x sudo pip3 install pymysql.
    • For either running on Anaconda: sudo conda install pymysql.
    • If that didn't work try APT: sudo apt-get install pymysql.
  3. If all else fails, install the package directly:

    • Go to the PyMySQL page and download the zip file.
    • Then, via the terminal, cd to your Downloads folder and extract the folder.
    • cd into the newly extracted folder.
    • Install the setup.py file with: sudo python3 setup.py install.

This answer is a compilation of suggestions. Apart from the other ones proposed here, thanks to the comment by @cmaher on this related thread.

Upvotes: 7

Yash Gupta
Yash Gupta

Reputation: 197

If even sudo apt-get install python3-pymysql does not work for you try this:

  • Go to the PyMySQL page and download the zip file.
  • Then, via the terminal, cd to your Downloads folder and extract the folder
  • cd into the newly extracted folder
  • Install the setup.py file with: sudo python3 setup.py install

Upvotes: 8

user530873
user530873

Reputation: 1085

Sort of already answered this in the comments, but just so this question has an answer, the problem was resolved through running:

sudo apt-get install python3-pymysql

Upvotes: 81

Related Questions