我已成功将MySQL-python
安装到我的虚拟环境中,并确认PyCharm可以导入它。然而,我收到了这条消息:
ImportError: this is MySQLdb version (1, 2, 4, 'beta', 4), but _mysql is version (1, 2, 5, 'final', 1)
我的安装方法是:
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版本没有被卸载。我该如何测试呢?谢谢!
答案 0 :(得分:0)
一些常见的潜在问题:
pip
和python
引用相同的解释器。虚拟环境最好通过执行source activate <NAME>
或将它们添加到路径而不是附加来激活。pymysql
时,我的所有问题都消失了,其API与mysqldb
完全兼容。更好的是,有一种方法install_as_MySQLdb()
使得pymysql
看起来与mysqldb完全一样,所以所有的包都期望后者与前者一起工作。我在OSX上设置的过程是:
brew install mysql gcc
。 gcc
以防你想要编译c
/ fortran
扩展到python模块。 brew doctor
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而不是开发人员团队中的其他人