在没有Internet 连接的情况下安装 MySQLDb(Python 模块)
大家好,
我需要在 SLES 11 开发服务器上安装 MySQLDb。由于公司防火墙政策,此开发服务器无法访问公共互联网。我假设这只是一种麻烦,它会迫使我在其他更容易安装的东西上进行源安装等。相反,在我尝试最终安装和运行支持 MySQL 的 Django 时,我碰壁了。
我已经下载并解压了 MySQL-python-1.2.4,我正在尝试运行它的 setup.py。但是,任何运行 setup.py 的尝试,甚至只是运行 setup.py,sudo python setup.py --help
都会导致以下结果
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz
然后当然下载失败。
我下载并安装了当前版本的distribute
模块(0.7.3),通过sudo python setup.py build install
. 我认为这会阻止 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 方面相当平庸)。
谢谢大家,豆