【问题标题】:Installing MySQLDb python module *without* Internet Connection安装 MySQLDb python 模块 *无需* Internet 连接
【发布时间】:2013-11-23 14:23:27
【问题描述】:

安装 MySQLDb(Python 模块)没有互联网连接

大家好,

我需要在 SLES 11 开发服务器上安装 MySQLDb。由于公司防火墙政策,此开发服务器无法访问公共互联网。我假设这只是一种麻烦,它会迫使我在其他更容易安装的东西上进行源安装等。相反,我在尝试最终安装和运行支持 MySQL 的 Django 时遇到了困难。

我已经下载并解压了 MySQL-python-1.2.4,我正在尝试运行它的 setup.py。但是,任何运行 setup.py 的尝试,即使只是 sudo python setup.py --help,都会导致以下结果

Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz

然后当然下载失败了。

我通过sudo python setup.py build install 下载并安装了当前版本的distribute 模块(0.7.3)。我认为这会阻止 mysql-python 的 setup.py 尝试下载 distribute。但这似乎无关紧要。我确实快速查看了 mysql-client 的 setup.py 以查看强制下载的位置。看来它的 setup.py 是这样做的:

from distribute_setup import use_setuptools
use_setuptools()

这叫:

def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
                   to_dir=os.curdir, download_delay=15, no_fake=True):
    # making sure we use the absolute path
    to_dir = os.path.abspath(to_dir)
    was_imported = 'pkg_resources' in sys.modules or \
        'setuptools' in sys.modules
    try:
        try:
            import pkg_resources
            if not hasattr(pkg_resources, '_distribute'):
                if not no_fake:
                    _fake_setuptools()
                raise ImportError
        except ImportError:
            return _do_download(version, download_base, to_dir, download_delay)

而且,pkg_resources 的导入失败(我已经从命令行复制了这个);并且异常处理程序尝试下载,当然失败了。

我的理解是 distribute 无论如何都已被弃用,应该使用 setuptools 代替。我确实安装了setuptools;但是 mysqldb 模块是否被硬编码为使用distribute,并且可能是distribute 的特定版本,这是我的问题?老实说,此时我对 Python 中的模块、依赖项等有点困惑(我在 Python 方面相当平庸)。

谢谢大家, 豆

【问题讨论】:

    标签: python django module mysql-python


    【解决方案1】:
    1. git clone https://github.com/PyMySQL/PyMySQL or download tarball. 用于 mysqldb:https://github.com/farcepest/MySQLdb1
    2. untar it
    3. run sudo python setup.py install

    就是这样。

    【讨论】:

    • 谢谢...但是这些看起来像是安装pymysql 的说明,而不是mysqldb。由于我的目标是运行 Django,而 Django 不支持 pymysql,并且由于我遵循 groups.google.com/forum/#!topic/django-users/y-9CnQFMGtk 等人尝试让 Django 与 pymysql 一起工作,但仍然有 ImportError,恐怕这个答案不是100% 适合我的需求。不过谢谢。
    • 另外,我仍然很好奇为什么mysqldb setup.py 会尝试下载distribute 的版本,尽管1. 我已经安装了最新的distribute 和2。 distribute 已被 setuptools 消除,我也安装了最新的 setuptools
    【解决方案2】:

    估计为时已晚,但为了未来的谷歌人......

    我遇到了同样的问题。为了解决它,我不得不评论这些行:

    if not hasattr(pkg_resources, '_distribute'):
                if not no_fake:
                    _fake_setuptools()
                raise ImportError
    

    在此之后,我可以通过python setup.py install 安装 MySQL-python。

    【讨论】:

      【解决方案3】:

      这个问题的答案似乎取决于版本。 MySQLDb 1.2.5 版(撰写本文时的最新版本)及更高版本不需要分发,因此python setup.py install 可以工作。版本 1.2.5 于 2014 年 1 月发布,所以这个问题太老了。

      【讨论】:

        猜你喜欢
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        • 2014-11-09
        • 2016-04-06
        • 2013-09-09
        • 2014-05-20
        相关资源
        最近更新 更多