如何安装MySQLdb包?(ImportError: 没有名为setuptools的模块)

40 投票
11 回答
128647 浏览
提问于 2025-04-15 14:26

我正在尝试安装 MySQLdb 这个软件包。我在这里找到了源代码 这里

我做了以下操作:

gunzip MySQL-python-1.2.3c1.tar.gz
tar xvf MySQL-python-1.2.3c1.tar
cd MySQL-python-1.2.3c1
python setup.py build

结果我得到了以下内容:

Traceback (most recent call last):
  File "setup.py", line 5, in ?
    from setuptools import setup, Extension
ImportError: No module named setuptools

有没有人知道怎么解决这个问题?顺便说一下,如果我能完成上面提到的步骤,我还需要做以下事情:

sudo python setup.py install

而且我没有系统管理员权限。我还有机会安装 MySQLdb 吗?

谢谢。

11 个回答

11

我在centos5.4上解决了这个问题,方法是运行下面的命令来安装setuptools。

yum install python-setuptools

希望这能帮到你。

28

我试了很多建议,最后用 sudo apt-get install python-mysqldb 这个命令就成功了。

更多信息可以查看: 获取“加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块” - 我尝试过之前发布的解决方案

16

如果MySQLdb现在的分发方式需要用到setuptools,那么你有两个选择:要么下载setuptools(比如可以从这里下载),要么修改MySQLdb的setup.py文件,绕过setuptools(你可以尝试直接从普通的distutils中导入setupExtension,这样可能会有效,但你可能还需要编辑同一目录下的一些setup_*.py文件)。

根据你网站上Python的安装配置,想要在不需要系统管理员权限的情况下为自己安装扩展可能会有点困难,但只要你有shell访问权限,这并不是完全不可能。你需要先调整一下Python的sys.path,让它从你自己的一个目录开始,这个目录就相当于系统范围内的site-packages目录,比如可以在你自己的环境中持久设置PYTHONPATH,然后手动把正常安装时通常放在site-packages(及其子目录)里的东西放到你那个个人目录里。

撰写回答