2017-03-07 273 views
0

我試圖用Django設置python 3.6環境。安裝說明說我應該安裝mysqlclient以便能夠連接到mySQL。我得到這個:使用pip3安裝mysqlclient的問題

[email protected]:~$ sudo -H pip3 install mysqlclient 
Collecting mysqlclient 
    Using cached mysqlclient-1.3.10.tar.gz 
    Complete output from command python setup.py egg_info: 
    /bin/sh: 1: mysql_config: not found 
    Traceback (most recent call last): 
     File "<string>", line 1, in <module> 
     File "/tmp/pip-build-4jiw3hvk/mysqlclient/setup.py", line 17, in <module> 
     metadata, options = get_config() 
     File "/tmp/pip-build-4jiw3hvk/mysqlclient/setup_posix.py", line 44, in get_config 
     libs = mysql_config("libs_r") 
     File "/tmp/pip-build-4jiw3hvk/mysqlclient/setup_posix.py", line 26, in mysql_config 
     raise EnvironmentError("%s not found" % (mysql_config.path,)) 
    OSError: mysql_config not found 

    ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-4jiw3hvk/mysqlclient/ 
You are using pip version 8.1.1, however version 9.0.1 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 

mySQL已正確安裝。什麼應該在mysql_config文件中? 當我嘗試升級PIP3我得到這個:

[email protected]:~$ sudo -H pip3 install --upgrade pip3 
Collecting pip3 
    Could not find a version that satisfies the requirement pip3 (from versions:) 
No matching distribution found for pip3 
You are using pip version 8.1.1, however version 9.0.1 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 

與PIP3安裝的mysql後,我注意到,該模塊被安裝在python3.5的目錄,而不是在python3.6的目錄,以便當我試圖導入MySQLdb模塊運行python3.6,它沒有被發現

[email protected]:~/python_db$ python 
Python 3.6.0+ (default, Feb 4 2017, 11:11:46) 
[GCC 5.4.1 20161202] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import MySQLdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ModuleNotFoundError: No module named 'MySQLdb' 
Error in sys.excepthook: 
Traceback (most recent call last): 
    File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook 
    from apport.fileutils import likely_packaged, get_recent_crashes 
    File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module> 
    from apport.report import Report 
    File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> 
    import apport.fileutils 
    File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> 
    from apport.packaging_impl import impl as packaging 
    File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module> 
    import apt 
    File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> 
    import apt_pkg 
ModuleNotFoundError: No module named 'apt_pkg' 

Original exception was: 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ModuleNotFoundError: No module named 'MySQLdb' 
>>> 

然後我重新使用python 3.5,它被發現。如何使用pip3將模塊安裝到3.6目錄中?

+0

它看起來就像是試圖找到你的配置文件。你有一個有效的my.cnf文件(/etc/my.cnf)嗎? – SuperTetelman

+0

是的。 mysql.cnf是在/ etc/mysql中 – Vietyank

回答

2

如果您使用的是Mac OS,試試這個:

brew install mysql

如果您使用Ubuntu14/16,試試這個:

sudo apt install libmysqlclient-dev

還有一:

pip3可以更新爲sudo pip3 install -U pip

+1

我在Ubuntu 16.04上安裝並運行MySQL。 我想安裝一個名爲mysqlclient的python模塊。通過安裝libmysqlclient-dev我能夠成功安裝mysqlclient模塊 仍然沒有運氣升級pip3。你寫的東西沒有用。 dennis @ django:〜$ sudo pip3 upgrade -U pip 錯誤:未知命令「升級」 – Vietyank

+0

正在安裝的mysql與正在安裝的mysqlclient不一樣。嘗試升級pip和/或安裝libmysqlclient-dev軟件包。並閱讀錯誤信息....它明確指出,安裝點子運行「點安裝 - 升級點」在你的情況下更改爲「點子3安裝 - 升級點」 – SuperTetelman

+0

你的Q有2個Q ...所以我回答都。 – Beomi

0

如果你在OSX運行甲基苯丙胺,這樣做:

export PATH=$PATH:/Applications/MAMP/Library/bin 
0

你可以試試這個安裝mysql到一個特定的Python目錄,例如W /蟒蛇3.6

sudo python3.6 /usr/bin/pip3 install mysqlclient 
0

在Debian的彈力所需的軟件包的名稱似乎已經改變爲默認-的libmysqlclient-dev的

https://packages.debian.org/stretch/default-libmysqlclient-dev

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18832974) – Bucket