前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建私有pypi仓库及需要注意的问题

搭建私有pypi仓库及需要注意的问题

作者头像
岛哥的质量效能笔记
发布2021-08-18 15:08:41
1.1K0
发布2021-08-18 15:08:41
举报
文章被收录于专栏:岛哥的质量效能笔记

阅读本文大约需要1.1分钟。

背景

很多公司级的Python项目不方便上传到公有仓库,这时候就需要搭建自己的私有pypi仓库了,这里如果只是团队部门小范围使用,推荐通过pypiserver搭建。

搭建私有仓库

安装pypiserver

代码语言:javascript
复制
pip install pypiserver

添加认证

使用htpasswd创建用户和密码,首先安装 passlib:

代码语言:javascript
复制
pip install passlib

创建htpasswd文件并创建一个用户(admin),并按照提示输入密码:

代码语言:javascript
复制
htpasswd -s htpasswd.txt admin

这里要注意的是:有些我们依赖的公有仓库中的packages在本地找不到,下载会超时,需要通过--fallback-url设置一个备选的镜像源:

代码语言:javascript
复制
pypi-server -p 2233 --fallback-url https://pypi.doubanio.com/simpl

如果不需要认证增加-P . -a .参数即可:

代码语言:javascript
复制
pypi-server -p 2233 -P . -a . --fallback-url https://pypi.doubanio.com/simple

上传Python包到pypi仓库

先创建~/.pypirc文件,并配置源的用户名密码:

代码语言:javascript
复制
[distutils]
index-servers =
    local
[local]
repository: http://localhost:2233
username: admin
password: 123456

然后使用sdist命令创建源分发,使用twine上传

代码语言:javascript
复制
release:clean_pyc
  python setup.py sdist bdist_wheel
  twine upload -r local ./dist/*
  
clean_pyc:
  find . -iname "*.pyc" -delete
  find . -iname "__pycache__" | xargs rm -rf {} \;

在用Jenkins做持续集成的时候,twine有概率出现找不到配置文件的情况,这时候通过 --config-file 参数指定你机器上.pypirc的路径即可:

代码语言:javascript
复制
twine upload --config-file .pypirc -r local ./dist/*

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 岛哥的质量效能笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档