【发布时间】: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