在OSX上安装MySQL-python之后的版本错误

时间:2014-07-26 07:37:47

标签: python macos pip mysql-python

我已成功将MySQL-python安装到我的虚拟环境中,并确认PyCharm可以导入它。然而,我收到了这条消息:

ImportError: this is MySQLdb version (1, 2, 4, 'beta', 4), but _mysql is version (1, 2, 5, 'final', 1)

我的安装方法是:

  • 在终端
  • 中激活我的venv
  • export PATH=$PATH:/usr/local/mysql/bin
  • export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
  • pip install MySQL-python

返回成功构建。我真的不明白问题是什么,pip是否为我提供了损坏的目录?

我尝试通过谷歌搜索来解决这个问题并且无济于事。然后我尝试从sourceforge下载1.2.4b4版本并在venv中构建它。这给了我以下错误:

ld: warning: ignoring file /usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient_r.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient_r.dylib

我在mysql和python上运行文件$(which),为mysql返回64位构建,为python返回32位和64位构建。

我真的不知道下一步该做什么,我真的很感激一些帮助,如果我错过了什么,请告诉我!谢谢

编辑:

我pip卸载了MySQL-python并再次尝试使用此zip:https://pypi.python.org/pypi/MySQL-python/1.2.5

pip install -Iv https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c

这给了我与以前相同的错误,声明MySQLdb是版本1.2.4b4但_mysql是1.2.5。这让我相信我可能有一个挥之不去的MySQL-python版本没有被卸载。我该如何测试呢?谢谢!

2 个答案:

答案 0 :(得分:0)

一些常见的潜在问题:

  • 确保您的路径正确,pippython引用相同的解释器。虚拟环境最好通过执行source activate <NAME>或将它们添加到路径而不是附加来激活。
  • 我遇到了MySqlSB的多个问题,堆栈溢出问题很多。当我切换到pymysql时,我的所有问题都消失了,其API与mysqldb完全兼容。更好的是,有一种方法install_as_MySQLdb()使得pymysql看起来与mysqldb完全一样,所以所有的包都期望后者与前者一起工作。

我在OSX上设置的过程是:

  • 摆脱所有Python安装(系统python,home-brew等)
  • brew install mysql gccgcc以防你想要编译c / fortran扩展到python模块。
  • 注意权限错误 - 始终运行brew doctor
  • 安装anaconda
  • 设置虚拟环境conda create -n <NAME> python=3.4
  • 激活虚拟环境source activate <NAME>
  • 安装必需的软件包,首先尝试conda,如果软件包不在,则pip。例如,我总是conda install numpy所以我不必自己编译,我做pip install pymysql

答案 1 :(得分:0)

感谢上述回答,对未来的问题排查工具提出了很好的建议。我设法通过重新安装1.2.5版本并重新启动我的编译器来解决这个问题。

换句话说,上面概述的方法应该有效。为了将来参考,请确保您的bin / activate和bin / pip的路径设置为您的venv而不是开发人员团队中的其他人