【问题标题】:How to install MySQLdb package? (ImportError: No module named setuptools)如何安装 MySQLdb 包? (ImportError:没有名为 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 吗?

谢谢。

【问题讨论】:

标签: python mysql installation


【解决方案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

                      【讨论】:

                        猜你喜欢
                        • 2015-08-19
                        • 2017-11-12
                        • 2014-04-10
                        • 2018-07-15
                        • 2020-04-16
                        • 1970-01-01
                        • 2013-01-03
                        • 2013-07-11
                        • 1970-01-01
                        相关资源
                        最近更新 更多