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

Posted

技术标签:

【中文标题】如何安装 MySQLdb 包? (ImportError:没有名为 setuptools 的模块)【英文标题】:How to install MySQLdb package? (ImportError: No module named setuptools) 【发布时间】:2010-11-29 18:22:51 【问题描述】:

我正在尝试安装 mysqldb 包。我找到了源代码here。

我做了以下事情:

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 吗?

谢谢。

【问题讨论】:

您需要获取 setuptools。见:pypi.python.org/pypi/setuptools 【参考方案1】:

在尝试了很多建议后,简单地使用sudo apt-get install python-mysqldb 对我有用。

更多信息: Getting "Error loading MySQLdb module: No module named MySQLdb" - have tried previously posted solutions

【讨论】:

【参考方案2】:

如果 MySQLdb 现在以需要 setuptools 的方式分发,您的选择是下载后者(例如从 here)或重构 MySQLdb 的 setup.py 以绕过 setuptools(可能只是导入 setupExtension 来自普通的 distutils 可能会起作用,但您可能还需要编辑同一目录中的一些 setup_*.py 文件。

根据您站点的 Python 安装的配置方式,安装扩展供您个人使用而不需要 sysadm 权限可能会很困难,但如果您有 shell 访问权限,这绝不是不可能的。您需要调整 Python 的 sys.path 以从您自己的目录开始,该目录相当于您个人的系统范围站点 pacages 目录,例如通过在您自己的环境中持久设置PYTHONPATH,然后手动将正常安装通常放置在站点包(和/或其子目录)中的内容手动放置在所述个人目录中。

【讨论】:

【参考方案3】:

我在centos5.4上通过运行以下命令安装setuptools解决了这个问题

yum 安装 python-setuptools

希望对你有帮助。

【讨论】:

【参考方案4】:

这对我来说也有点棘手,我做了以下工作,效果很好。

为 setuptools 下载适当的 Python .egg(即,对于 Python 2.6,您可以获取它here。从 PyPI 站点 here 获取正确的。) chmod 要执行的 egg:chmod a+x [egg](即,对于 Python 2.6,chmod a+x setuptools-0.6c9-py2.6.egg) 运行./[egg](即,对于Python 2.6,./setuptools-0.6c9-py2.6.egg

如果您只是为当前用户安装 sudo,则不确定是否需要使用它。您肯定需要它来为所有用户安装它。

【讨论】:

【参考方案5】:

@main:

$ su
$ yum install MySQL-python

它将被安装(MySQLdb)。

【讨论】:

【参考方案6】:
#!/usr/bin/env python

import os
import sys
from **distutils.core** import setup, Extension

if sys.version_info < (2, 3):
    raise Error("Python-2.3 or newer is required")

if os.name == "posix":
    from setup_posix import get_config
else: # assume windows
    from setup_windows import get_config

metadata, options = get_config()
metadata['ext_modules'] = [Extension(sources=['_mysql.c'], **options)]
metadata['long_description'] = metadata['long_description'].replace(r'\n', '')
setup(**metadata)

【讨论】:

【参考方案7】:

对于 Python 2.7,使用它可以轻松安装

apt-get install python2.7-mysqldb

【讨论】:

【参考方案8】:

另外,您可以在 setup.cfg 文件中查看构建依赖项

【讨论】:

【参考方案9】:

我现在遇到同样的问题。根据this post,您需要有一个 C 编译器或 GCC。我将尝试通过安装 C 编译器来解决此问题。如果它有效,我会通知你(我猜你不再需要它了,但我还是会发布结果):)

【讨论】:

【参考方案10】:

很好地安装 C 编译器或 GCC 不起作用,但我找到了成功安装 mysqldb 包的方法

请遵循 Mike schrieb(感谢他)的指示 here。就我而言,我使用了 setuptools-0.6c11-py2.7.egg 和 setuptools-0.6c11 。然后下载可执行文件here 然后安装该文件。希望对你有帮助:)

【讨论】:

【参考方案11】:

当你需要在 Linux/Unix 中安装模块并且你缺乏 sudo / admin 权限时,一种简单的解决方法是使用用户方案安装,基本上运行

“python setup.py install --user”在要安装的模块/库文件夹中的命令行中

(详情请参阅http://docs.python.org/install/index.html

【讨论】:

以上是关于如何安装 MySQLdb 包? (ImportError:没有名为 setuptools 的模块)的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Sass Importer 将文件合并到一个样式表中? [复制]

Ubuntu中的Python-MySQLdb错误

如何在 openSUSE 上安装 Pythons MySQLdb 模块?

如何在 Synology 上安装 Pip 3 和 Python Lib MySQLdb

gerrit importer 使用方法

linux下MySQLdb模块简便安装