2017-03-07 60 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