2014-02-28 61 views
31

我正在使用Amazon Linux AMI 2013.09版。我已經安裝了virtualenv,並且在激活之後,我運行pip install mysql-connector-python,但是當我運行我的應用程序時,出現錯誤:ImportError: No module named mysql.connector。這樣做有其他人有麻煩嗎?我可以在virtualenv之外安裝它,並且我的腳本運行時沒有問題。預先感謝任何幫助!無法獲取mysql-connector-python在virtualenv中安裝

+0

您運行的是哪個版本的Python? – Drewness

+0

2.6.9(未知,2013年10月29日,19:58:13)[GCC 4.6.3 20120306(Red Hat 4.6.3-2)] – slim

+1

我能夠通過安裝python連接器在我的venv中運行我的應用程序在virtualenv之外,然後手動將安裝在site-packages文件夾中的內容複製到我的虛擬環境site-packages文件夾中。然而這並不是解決方案,因爲它違背了virtualenv的目的。有趣的是,點子還沒有做到這一點。 – slim

回答

49

幾件事。有一個在包命名不一致,所以你可能想要做的:

pip search mysql-connector 

找出它被稱爲你的平臺上。我得到了兩個結果mysql-connector-pythonmysql-connector-repackaged

所以先試試這個:

pip install mysql-connector-python 

這可以另外給這樣的錯誤:

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

所以最後這應該做的工作:

pip install mysql-connector-python --allow-external mysql-connector-python 
+0

我不得不在我的項目中繼續前進,但我會努力測試這一點並回到您。謝謝您的回答。 – slim

+0

最後一行字面上救了我的命! – Jacob

+0

'mysql-connector-python'出現在'--allow-external' **和**之後! –

30

解決方案,我發現:

sudo pip install mysql-connector-python-rf 

如果您看到此錯誤:option --single-version-externally-managed not recognized,試試這個:

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

我會盡快測試這個,謝謝你的回覆。 – slim

2

試試我的回答here。雖然我的意思是Python3,你可以修改命令python3-> python使其爲python2工作

5

我已經與此作鬥爭,並嘗試升級pip和setuptools,但實際上它似乎只需要:

sudo pip install virtualenv --upgrade 

一旦你升級的virtualenv,創建一個新的虛擬環境,激活它,並嘗試與安裝:

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

(您可能需要更新網址,但是這是當前一個)

4

我已經設法解決這個問題,從MySQL頁面直接輸入mysql-connector-python包URL,直接到需求文件,而不是依賴項名稱。

我的要求,文件看起來像這樣:

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

創建的virtualenv並切換到它,我執行

$ pip install -r ./requirements 

和PIP是做工作的其餘部分,即下載後,解壓並安裝。

0

我使用user20749的解決方案來修復virtualenv中的問題。 任何人都可以說出在virtualenv內外使用此命令有什麼不同? 我的環境:使用python 2.6.6,MySQL5.1.73 的Centos 6.5 32bit出貨我沒有如何解決這個問題,我想這是因爲我在安裝mysql.connector之前安裝了virtualenv。

+2

您可能希望將此作爲單獨的問題或我的問題下的評論,因爲它不是實際的答案。 – slim

16
pip install mysql-connector 

這對我有效!

+0

你能告訴我們你正在運行的是什麼環境嗎? – slim

+0

@slim我試圖在我的linux機器上安裝mql.connector,並且這對我有用。 – prashanth

+0

什麼發行版和版本? – slim

5

我想補充一點,

sudo easy_install mysql-connector 

爲我工作後,PIP保持崩潰,無論我做什麼。

+0

這是我在相當過時的EC2實例上爲我工作的唯一一個 – jpaljasma

6

我正面臨類似的問題。我的ENV細節 -
的Python 2.7.11
PIP 9.0.1
CentOS版本5.11(最終)

在Python解釋器錯誤 -

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

使用PIP搜索可用的模塊 -

$ 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 

安裝mysql-connector-python -rf -

$ pip install mysql-connector-python-rf 

驗證

$ 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 
>>> 
+0

你知道這兩個軟件包之間的區別嗎? 「-rf」代表什麼? – slim

+0

@slim TBH即使我有同樣的問題!找不到答案..肯定它不是什麼隨機花式的東西=) – Rishi

+3

mysql-connector-python-random-fix;) – slim

5

命令

pip install mysql-connector-python-rf 

在我pyenv Python版本2.7.12和PIP版本9.0.1爲我工作。

1

也未嘗出錯:不要對你自己的模塊mysql

import mysql.connector將失敗,因爲進口了現場包給人的模塊中的項目優先級,你可能犯規有connector.py文件。