惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 热门话题
G
GRAHAM CLULEY
S
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
Recorded Future
Recorded Future
I
Intezer
云风的 BLOG
云风的 BLOG
博客园 - Franky
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
T
Tenable Blog
The Hacker News
The Hacker News
T
The Blog of Author Tim Ferriss
Attack and Defense Labs
Attack and Defense Labs
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
News and Events Feed by Topic
有赞技术团队
有赞技术团队
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
The Cloudflare Blog
Webroot Blog
Webroot Blog
W
WeLiveSecurity
H
Heimdal Security Blog
博客园 - 三生石上(FineUI控件)
V
Vulnerabilities – Threatpost
G
Google Developers Blog
O
OpenAI News
V
V2EX
罗磊的独立博客
博客园_首页
N
News | PayPal Newsroom
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
TaoSecurity Blog
TaoSecurity Blog
Cloudbric
Cloudbric
H
Hacker News: Front Page
博客园 - 叶小钗
T
Tor Project blog
AI
AI

Lowin Li

IQuest-Coder-V1调研,NanobananaPro + Gemini3Pro生成 | Lowin Li Vibecoding 时代,程序员会消失吗?——从“全自动”到“半自动”的冷思考 | Lowin Li AzureOpenAI vs OpenAI | Lowin Li ChatGPT出圈的秘诀 | Lowin Li 人工反馈的强化学习 | Lowin Li Stable Diffusion的模型量化,降低内存75%、Streamlit的在线生成图片调试、docker服务部署 | Lowin Li 训练一个SentenceTransformer模型 | Lowin Li 8位混合精度矩阵乘法,小硬件跑大模型 | Lowin Li Constrained Beam Search | Lowin Li 盘点开源“Copilot”,do it yourself | Lowin Li 使用fastgpt提速huggingface的GPT文本生成模型 | Lowin Li DataMeasurementsTool介绍 | Lowin Li bigbird长文本预训练模型介绍 | Lowin Li Transformers仓库做语言生成的解码方法介绍 | Lowin Li 谁说torchtext不能做多标签任务 | Lowin Li 转载:人工智能能否实现? | Lowin Li 分享CML工具在github上的一个原创例子 | Lowin Li .li域名注册教程 | Lowin Li Transformers仓库解读之一DataCollator | Lowin Li
docker启devpi服务 | Lowin Li
文章作者: Lowin Li · 2022-03-04 · via Lowin Li

相关链接:

  • github
  • dockerhub

    简要

  • devpi工具相比其他pypi源工具,有如下特点:
    1. 节省硬盘:不必完全同步下来公开源的所有包,仅在第一次pip安装时从公开源下载和缓存。
    2. 支持上传接口文档:上传自己开发pip库时,可以把接口文档也上传到devpi。
  • 本项目旨在用docker容器启动devpi服务。

    背景

    为什么要自己搭建pypi源服务

  1. 节省安装时间:当我们在内网打包镜像、安装python环境时,经常要反复外网源下载pip库。即使改用国内的阿里源、豆瓣源,下载速度一般也只会在2~7MB/s左右,如果安装500MB的TensorFlow,下载+安装约需要2分钟。如果遇到网络不稳定,等待时间会更长,而从内网下载安装包,速度在**100+MB/s !!!**。
  2. 分享沉淀python库:内部开发的python库,如果在内部pip源平台上,以pip库的形式内部分享,可以减少很多重复性工作,也可以沉淀工作内容。

pip源工具对比

比较试用了几款常见的pip源工具,选择devpi工具搭建

工具 上传自己的pip包至服务 外网源同步至服务 安装体验
pypiserver 支持twine命令上传 不支持,需要自己下载 手动同步上千个包后index目录变卡
bandersnatch 不支持命令上传包 自动同步,只能同步国外官方源,占硬盘多 白名单设置同步库较麻烦
devpi 支持twine、devpi命令上传 采用缓存机制,不占用太多硬盘 第一次客户端pip安装,服务会从指定外网源下载,并存入服务硬盘,后面直接走缓存的硬盘

快速开始

docker run 方式

docker run -d --name devpi-lib -p 7104:7104  --env DEVPISERVER_HOST=0.0.0.0 --env DEVPISERVER_PORT=7104 --env DEVPISERVER_ROOT_PASSWORD=password --env DEVPISERVER_USER=lowinli --env DEVPISERVER_PASSWORD=password --env DEVPISERVER_MIRROR_INDEX=pypi --env DEVPISERVER_LIB_INDEX=devpi --env SOURCE_MIRROR_URL=https://pypi.douban.com/simple --restart always --volume volume:/var/lib/devpi lowinli98/devpi:v0.1

docker-compose 方式

version: "2.3"
services:
  devpi-lib:
    container_name: devpi-lib
    image: lowinli98/devpi:v0.1
    expose:
      - 7104
    ports:
      - "7104:7104"
    environment:
      - DEVPISERVER_HOST=0.0.0.0
      - DEVPISERVER_PORT=7104
      - DEVPISERVER_ROOT_PASSWORD=password
      - DEVPISERVER_USER=lowinli
      - DEVPISERVER_PASSWORD=password
      - DEVPISERVER_MIRROR_INDEX=pypi                    # 指定镜像index
      - DEVPISERVER_LIB_INDEX=devpi                      # 指定上传index
      - SOURCE_MIRROR_URL=https://pypi.douban.com/simple # 指定镜像源
    restart: always
    volumes:
      - ./volume:/var/lib/devpi

访问devpi页面

http://0.0.0.0:7104

本地pip安装实验

  • 单次安装

    pip install tensorflow==2.2.0 -i http://0.0.0.0:7104/lowinli/devpi/+simple/ --trusted-host 0.0.0.0:7104
  • 修改默认pip安装源

    # vim ./pip/pip.conf
    [global]
    index-url = http://0.0.0.0:7104/lowinli/devpi/+simple/
    trusted-host = 0.0.0.0:7104

本项目特点

  1. 可以自由指定MIRROR源,尤其配置大陆pypi源可以提高搜索和下载速度,环境变量:SOURCE_MIRROR_URL
  2. 通过索引继承方式,对MIRROR的indexDEVPISERVER_MIRROR_INDEX和个人上传pip库的indexDEVPISERVER_LIB_INDEX进行统一地址管理
  3. 使用了devpi-semantic-ui页面,可以更好的展示pypi库的版本信息、接口文档
  4. examples/upload-demo目录介绍一个例子,打包pip库、sphnix生成接口文档,并上传到devpi服务。

截图