ubuntu: 搭建pypi镜像源

比较简单,这里只简要记录流程

1. 创建虚拟环境

python -m venv ./virtual_env

2. 激活虚拟环境

source ./virtual_env/bin/activate

3. 安装pip2pi

pip install pip2pi

4. 下载清华pypi镜像包

        这个过程比较耗时,我大概用了快一周的时间,共下载了12T的数据。清华那边的服务器原因,中间被停了几次。可以多开几个线程并行下载。

1)获取镜像源的requirements.txt (大概有几个G)

        prepare_pypi_requirements.py

import requests
import re
report = requests.request('get','https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/')
# print(report.text)
text_str = str(report.text).split('\n')
with open('requirement.txt','w+') as f:
    for i in text_str:
        temp = re.findall('<a href="(.*?)/">',i)
        # print(i,temp)
        if temp != []:
            f.write(str(temp[0])+'\n')

在当前文件夹下得到一个requirements.txt文件,大概有几个G。

2)下载pypi库文件

#!/bin/bash
import os
file="./requirement.txt" # 可以修改成全局路径
 
with open(file,'r+') as f:
    text = f.readlines()
    for i in text:
        os.mkdir('/home/data1/pypi_packages/'+i[:-1])
        os.system('pip download '+i[:-1]+' -i \
            https://pypi.tuna.tsinghua.edu.cn/simple -d \
            '+'/home/data1/pypi_packages/'+i[:-1])

5. 运行dir2pi命令

dir2pi ./pypi_packages

运行完毕后,在pypi_packages目录内生成了一个simple文件夹。

6. 把simple文件夹暴露在网络中

方式 1) python创建server

python -m http.server 8080 --bind your_machine_ip --directory /path/to/pypi_packages/simple
  • tip1:  8080是port,数值不能太小,把port设置为2023或者2024不work.
  • tip2:  --bind 后面跟的是本机的IP。比如:168.163.1.1.
  • tip3:  --diectory 后面跟的是 simple文件夹的全局路径。

方式 2)用nginx

在ubuntu中离线安装nginx的教程见:Ubuntu18.04 离线安装nginx-CSDN博客

假设nginx的安装路径是:/usr/local/nginx。

a )修改nginx.conf

        总共修改三个位置,如下

server{
    listen        8080;  # 1.修改位置1:设置端口
    server_name     168.163.1.1:8080;  # 2.修改位置2:输入你的ubuntu-IP。
    location / {
            root /home/data1/pypi-packages; # 3.修改位置3--设置html文件的搜索路径,在simple文件夹的前一层
    }
}
 b) 启动nginx
sudo /usr/local/nginx/nginx

co /usr/local/nginx
sudo ./nginx -c ./nginx.config

 7. 测试镜像

        配置pip:

# 修改搜索路径
pip config set global.index-url http://168.163.1.1:8080/simple

# 添加对搜索IP的信任,否则会install失败
pip config set install.trusted-host 168.163.1.1

        测试镜像:

pip install bs4

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值