ubuntu: 搭建pypi镜像源

2023-12-26 22:38:16

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

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

?

文章来源:https://blog.csdn.net/Strive_For_Future/article/details/135231200
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。