【问题标题】:Version error after pip installing MySQL-python on OSX在 OSX 上 pip 安装 MySQL-python 后的版本错误
【发布时间】:2023-04-06 21:03:01
【问题描述】:

我已成功将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 挥之不去的版本。我将如何进行测试?谢谢!

【问题讨论】:

    标签: python macos pip mysql-python


    【解决方案1】:

    几个常见的潜在问题:

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

    我在 OSX 上设置的过程是:

    • 摆脱所有 Python 安装(系统 Python、自制软件等)
    • 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

    【讨论】:

      【解决方案2】:

      感谢以上回答,为未来的疑难解答提供了很好的建议。我设法通过重新安装 1.2.5 版本并重新启动我的编译器来解决这个问题。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-03
        • 2018-08-09
        • 2020-03-29
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 1970-01-01
        • 2017-12-03
        相关资源
        最近更新 更多