离线安装setuptools


总是有奇奇怪怪的需求,比如说我现在有个离线的环境,我竟然异想天开通过 python setup.py install 去安装一些第三方包

当我敲了回车键的时候才发现我竟然发现没有 setuptools ,我才惊奇的发现竟然在一个离线的环境 Downloading https//:pypi.io/packages/source/s/setuptools/setuptools-20.6.7.zip 下载 setuptools ,这当然是行不通的

安装准备

① 复制 ez_setup.py 的内容并保存到本地

https://bootstrap.pypa.io/ez_setup.py

② 下载 setuptools-20.6.7.zip 到本地

https://pypi.io/packages/source/s/setuptools/setuptools-20.6.7.zip

为什么要这么做

ez_setup.py 中,逻辑实现为:在当前目录下查找是否包含某个版本的 setuptools-%s.zip 的文件,如果没有就拼接一个地址下载该文件,下载后解压并安装
在这里插入图片描述

我们需要做的是:更改下载的逻辑,并将 zip 文件放在当前目录下,跳过下载的步骤,假装我们已经下载好了文件

怎么做

① 更改 ez_setup.py 中的 download_setuptools 函数的逻辑

def download_setuptools(
        version=DEFAULT_VERSION, download_base=DEFAULT_URL,
        to_dir=DEFAULT_SAVE_DIR, delay=15,
        downloader_factory=get_best_downloader)
    # making sure we use the absolute path
    to_dir = os.path.abspath(to_dir)
    # 此处做了修改,指定了zip文件
    zip_name = "setuptools-20.6.7.zip"
    # 此处在拼接文件下载地址
    url = download_base + zip_name
    saveto = os.path.join(to_dir, zip_name)
    if not os.path.exists(saveto):  # Avoid repeated downloads
        log.warn("Downloading %s", url)
        downloader = downloader_factory()
        downloader(url, saveto)
    return os.path.realpath(saveto)

② 将 setuptools-%s.zip 文件和 ez_setup.py 文件放在同一目录下,执行该命令,大功告成

python ez_setup.py
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值