python模块私有仓库devpi搭建

1.简要

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

2.背景

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

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

2.2. pip源工具对比

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

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

3.快速开始

3.1. 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

3.2. 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

3.3. 访问devpi页面

0.0.0.0:7104

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,私有仓库通常指的是开发者用于存储和管理代码库的私有空间,比如GitHub、GitLab或Bitbucket等平台上创建的私有仓库。这些仓库的内容不对外开放,仅限于团队成员或者授权的人访问。如果你想在Python项目中使用私有仓库,你需要进行以下步骤: 1. **创建账户和私有仓库**: 如果你还没有私有仓库,首先在GitHub等平台注册并创建一个。 2. **配置`git`**: 使用命令行工具,确保你的本地git配置了对私有仓库的访问权限。这通常涉及到添加SSH密钥或生成Personal Access Tokens(PAT)。 ```bash # 添加SSH密钥 (如果你没有,需在GitHub账户设置中生成) ssh-keygen -t rsa -C "your_email@example.com" cat ~/.ssh/id_rsa.pub | ssh -T git@github.com # 或者使用PAT (适用于HTTPS) git config --global credential.helper store git clone https://github.com/username/private_repo.git ``` 3. **添加仓库地址**: 将私有仓库的URL添加到你的项目的`.gitignore`(如果有的话)或者`.git/config`文件中,替换为你的实际仓库地址。 4. **推送代码**: 当你有新的代码更改时,使用`git push`命令将代码推送到私有仓库。 5. **版本控制**: 确保遵循良好的版本管理实践,如使用`git flow`或`semantic versioning`来标记和发布不同版本。 6. **权限管理**: 在团队协作中,可能需要为特定的团队成员分配读写权限,可以通过GitHub的团队或成员权限设置来完成。 相关问题: 1. 什么是Git的SSH密钥和Personal Access Tokens? 2. 如何在GitHub上设置私有仓库的访问权限? 3. 如何在Python项目中管理多个仓库的切换?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值