setuptools.png

由于某些原因,没法在线安装setuptools,研究了一下官方提供的安装脚本,发现原来想要离线安装setuptools很简单。

首先下载这个脚本

然后在url = download_base + egg_name这一句后面加入

url = download_base + egg_name
print url
exit()

然后执行一下脚本 python ez_setup.py,就会得到一个URL,类似:

https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

赶紧wget或者curl下来

wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

然后把egg文件放到和脚本同目录的地方,并且恢复之前的脚本(或者删掉旧的ez_setup.py,直接下载新的)。

然后就可以打包放到其他地方工离线安装使用了。

原理其实很简单,核心是这句 sys.path.insert(0, egg),把当前egg导入系统路径,然后就可以各种import了。

PS.安装完脚本会把egg文件删除,你知道是在哪儿删除的吗?


如果嫌麻烦,可以直接用下面的脚本,但还是需要之前提到的egg文件

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import sys

egg = "./setuptools-0.6c11-py2.7.egg"

sys.path.insert(0, egg)

from setuptools.command.easy_install import main

main([egg])