如何安装 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
(可能只是导入 setup
和Extension
来自普通的 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 将文件合并到一个样式表中? [复制]
如何在 openSUSE 上安装 Pythons MySQLdb 模块?