36

I'm using Amazon Linux AMI release 2013.09. I've install virtualenv and after activation then I run pip install mysql-connector-python, but when I run my app I get an error: ImportError: No module named mysql.connector. Has anyone else had trouble doing this? I can install it outside of virtualenv and my script runs without issues. Thanks in advance for any help!

5
  • What version of Python are you running? Commented Feb 28, 2014 at 16:41
  • 2.6.9 (unknown, Oct 29 2013, 19:58:13) [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)] Commented Feb 28, 2014 at 17:39
  • 1
    I was able to run my app inside of my venv by installing the python connector outside of virtualenv and then manually copying what was installed in the site-packages folder into my virtual environments site-packages folder. This is no solution however as it defeats the purpose of virtualenv. It's interesting that pip didn't already do this. Commented Feb 28, 2014 at 17:51
  • 1
    Yeah, this is a hassle since yum relies on Python 2.6.x. I would recommend setting up a virtualenv with 2.7, that way you get the best of both worlds. Here is a blog describing the process. Commented Feb 28, 2014 at 17:51
  • See also stackoverflow.com/questions/43029672/… Commented Jul 24, 2017 at 16:40

14 Answers 14

60

Several things. There is an inconsistency in package naming so you may want to do:

pip search mysql-connector

to find out what it is called on your platform. I got two results mysql-connector-python and mysql-connector-repackaged.

so try this first:

pip install mysql-connector-python

this may additionally give an error like this:

Some externally hosted files were ignored (use 
    --allow-external mysql-connector-python to allow).

so finally this should do the job:

pip install mysql-connector-python --allow-external mysql-connector-python
Sign up to request clarification or add additional context in comments.

7 Comments

I had to move on in my project, but I will make an effort to test this out and get back to you. Thank you for your answer.
mysql-connector-python comes before --allow-external and after!!
It looks like --allow-external is not supported in some versions of pip? I'm using pip 1.3.1 in a python 2.7.10 venv and get "no such option: --allow-external"
Follow-up: I also updated pip to 8.0.2 and get the same result, no such option! But I know this worked before, under python 2.7.8.
Could not find a version that satisfies the requirement mysql-connector-python (from versions: ) No matching distribution found for mysql-connector-python
|
31

Solution I found:

sudo pip install mysql-connector-python-rf

If you see this error: option --single-version-externally-managed not recognized, try this:

sudo pip install --egg mysql-connector-python-rf

Comments

19
pip install mysql-connector

This worked for me!

4 Comments

Can you tell us what environment you're running?
@slim I tried to install mql.connector in my linux machine, and this worked for me.
What distro and version?
This worked for me also (it installed successfully, haven't tried to use it yet), using Windows 10, Python 3.6.4, and pip 9.0.1
7

I was facing the similar issue. My env details -
Python 2.7.11
pip 9.0.1
CentOS release 5.11 (Final)

Error on python interpreter -

>>> import mysql.connector
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mysql.connector
>>>

Use pip to search the available module -

$ pip search mysql-connector | grep --color mysql-connector-python



mysql-connector-python-rf (2.2.2)        - MySQL driver written in Python
mysql-connector-python (2.0.4)           - MySQL driver written in Python

Install the mysql-connector-python-rf -

$ pip install mysql-connector-python-rf

Verify

$ python
Python 2.7.11 (default, Apr 26 2016, 13:18:56)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>>

4 Comments

Do you know the difference between the two packages? What's does the "-rf" stand for?
@slim TBH even I am having the same question! could not find the answer yet.. For sure its not something random fancy stuff =)
mysql-connector-python-random-fix ;)
@slim see "What are the differences...". Summarizing, (1) it's Required For Django 1.8, (2) it's Retrieved the most Frequently, (3) it's the veRsion that actually Functions.
6

I'd like to add that

sudo easy_install mysql-connector

worked for me after pip kept crashing no matter what I did.

3 Comments

That was the only one that worked for me on quite outdated EC2 instance
Work with Python3.6 on a Ubuntu 64bit 18.04 as well. Interesting
Chiming in to add this worked for me using a Python3.7 conda environment, none of the other solutions worked on my end...
5

I've battled with this and tried upgrading pip and setuptools but actually it seems all you need to do is:

sudo pip install virtualenv --upgrade

Once you've upgraded virtualenv, create a new virtual environment, activate it and try installing with:

pip install https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz

(you might need to update the url, but that's the current one)

Comments

5

Command

pip install mysql-connector-python-rf

worked for me in my pyenv python version 2.7.12 and pip version 9.0.1.

Comments

4

I have managed to overcome this problem by entering mysql-connector-python package URL, taken from MySQL page, directly to the requirements file, instead of dependency name.

My requirements file looks like this:

bson==0.4.2
https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.tar.gz
pymongo==3.2.1

After creating virtualenv and switching into it I am executing

$ pip install -r ./requirements

And pip is doing the rest of the work, i.e., downloading, extracting and installing.

Comments

4

It works for me!

pip install mysql-connector-python-rf

If you get the error, install the latest version of setuptools and wheel:

pip install -U setuptools
pip install -U wheel

Comments

3

Also something that can go wrong: Don't name your own module mysql

import mysql.connector will fail because the import gives the module in the project precedence over site packages and yours likely doesnt have a connector.py file.

Comments

2

try my answer here. Though i meant it for Python3, u can just modify the command python3->python to make it work for python2

Comments

0

I just had the same problem and none of the solutions below worked. Some was already installed and the last one returned me an error:

    pip install mysql-connector
    pip install mysql-connector-python
    pip install mysql-connector-python-rf

It looks like all I had to do was run the code in a different IDLE version, moving from 3.6 to 3.7. Before doing that, I also used the windows repair installation tool in two different python versions I have installed.

Sometimes the simplest solutions work. Good luck

Comments

0

Make sure that you've installed the mysql connector from within the venv. In VSCode, what worked for me is I selected the venv interpreter as the python interpreter.

https://code.visualstudio.com/docs/python/environments

2 Comments

An answer is a direct response that sincerely attempts to provide the information/analysis requested by the question. Hence remember link is not an answer.
A link to a solution is welcome, but please ensure your answer is useful without it: add some more text and examples or code that someone can use to solve the problem asked in the OP post.
-1

You can download official connector from here -

Choose Platform independent version.

Unzip and cd to the folder.

run sudo -H python3 setup.py install from your environment.

Done

1 Comment

I can't figure how this can be a good idea in any way.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.