我不能为我的生活把这一点弄清楚。我整天都在网上搜索,所有的资源似乎都过时了。从我可以告诉我的MySQLdb和Python一起发挥很好的相当困难。我已经尽力了,我不知道如何继续前进。
首先,我正在运行Python 2.7
当我尝试在实时解释器中运行“import MySQLdb”时得到的错误是:
ImportError: this is MySQLdb version (1, 2, 2, 'final', 0), but _mysql is version (1, 2, 5, 'final', 1)
当我运行“pip install mysql-python”时,我也会看到以下错误日志,但是我不确定那个jsut是否与版本不匹配有关。 http://pastebin.com/hqVv6aPZ
我有一个依赖于MySQLdb的python项目,我一直试图让我正在运行Python的virtualenv来正确安装软件包。这就是我所做的:
我不能为我的生活弄清楚这里要做什么。似乎我的机器上的MySQLdb和_mysql之间只有一个版本不匹配。是这样的吗?如果是这样,解决方案只是重新安装旧版本的MySQL?看来,当我强制pip安装mysql-python的1.2.5版本时,它会安装MySQLdb的1.2.2版本,所以我在这里做了什么,因为我不确定自制软件包中的哪个包实际上与版本1.2.5 for _mysql。
编辑 -
sys.path
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python27.zip',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-darwin',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-mac',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-mac/lib-scriptpackages', '/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/Extras/lib/python',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-tk',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-old',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-dynload',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/adam.stark/virtualenvs/qa-automated-tests/lib/python2.7/site-packages'
Python --version说我在版本2.7.5。我还将pastebin设置为public。我只是不确定转储中的相关信息究竟是什么,它会回吐16个错误。
答案 0 :(得分:4)
这里的问题最终成了一些事情。正如abarnert在问题的评论中指出的那样,系统python和virtualenv python混合在一起。要解决这个问题,我必须将PyDev项目的项目属性更改为仅指向virtualenv python实例,然后在PyDev解释器首选项中我必须重建PYTHONPATH。
完成此操作后,在virtualenv中我必须运行以下代码:
pip uninstall mysql-python
pip install mysql-python==1.2.5
这解决了所有问题。
答案 1 :(得分:1)
你可以试试这个。打开终端并输入:
true
它对我有用。我使用Python 2
答案 2 :(得分:0)
我有同样的问题,因为不同的原因而产生。我的工作机器(大学基础设施的一部分)没有root权限。我不得不通过发布在本地安装MySQLdb
pip install --user MySQL-python
(来自此guide)。这产生了同样的结果
ImportError: this is MySQLdb version (1, 2, 3, 'final', 0), but _mysql is version (1, 2, 5, 'final', 1)
不匹配。安装1.2.5版本无效。
我做了什么:从本地卸载并重新安装版本1.2.3,如错误所示
pip install --user MySQL-python==1.2.3
错误消失了。
答案 3 :(得分:0)
执行此操作,然后重试
pip uninstall mysqlclient