基于bandersnatch内网搭建本地pypi源

 前段时间给公司搭建了内网python源,遇到了些坑,现在分享出来,避免大家踩坑。参考博客

1.查看所有python三方库需要的空间

PYPI

2.准备足够大的硬盘空间

预留的硬盘空间必须大于21.2TB

3.下载安装镜像工具bandersnatch

官方文档提供了docker和pip安装方式:bandersnatch安装方式 。我用的是pip安装:

要求python版本高于3.8,查看python版本是否符合要求

python3 -V

更新python3软件包

sudo apt install python3.10-venv

在当前目录下载bandersnatch包

bandersnatch/bin/pip install bandersnatch -i 清华源

添加环境变量

sudo vim ~/.bashrc

export PATH=$PATH:/mnt/disk1/bandersnatch/bin

4.生成.conf配置文件

bandersnatch mirror

第一次执行bandersnatch mirror只会生成/etc/bandersnatch.conf配置文件

5.修改.conf配置文件

bandersnatch配置文件在/etc/路径下

sudo vim /etc/bandersnatch.conf

5.1 修改下载的三方库的保存路径:

5.2 过滤下载的三方库

官网参考文档:官方文档

我们公司不会用到macos和freebsd系统,python2现在也不用了,所以就比如过滤掉macos freebsd python2相关包,在bandersnatch.conf添加:

[plugins]
enabled=
   exclude_platform
[blocklist]
platforms =
       macos
       freebsd
       py2.4
       py2.5
       py2.6
       py2.7

这样下载的时候,和这些相关的三方库都不会下载下来,能节省时间,节省空间。

5.3 设置下载线程数

并行下载线程数,越大下载越快

5.4从清华源下载三方库

设置镜像网站为清华源 https://pypi.tuna.tsinghua.edu.cn/

download-mirror-no-fallback默认为fasle,意思就是当有些库在你设置的镜像网站(此处是清华源)没有或者下载失败时,自动从pypi原网站下载该库。但是由于pypi在外网,网络非常不稳定,网速也很慢,很容易报下载失败的错,特别浪费时间。所以这里设置为true,只从清华源下载库,不到pypi源网站下载,能节省很长的时间。

6.开始下载

再次运行

bandersnatch mirror

弹出如上信息说明成功开始下载。

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要建立私人的PyPI库,可以使用以下两种方法: 1. 使用devpi devpi是一个开PyPI服务器,可以在本地网络或互联网上建立私有的PyPI库。使用devpi,你可以轻松地创建、管理和分享Python软件包。下面是使用devpi建立私人PyPI库的简单步骤: - 安装devpi:可以使用pip命令进行安装,如下所示: ``` pip install devpi-server ``` - 初始化devpi:使用以下命令初始化devpi服务器,创建管理员账户和密码: ``` devpi-server --init ``` - 启动devpi:使用以下命令启动devpi服务器: ``` devpi-server ``` - 创建用户:使用以下命令创建新用户: ``` devpi user -c username password=yourpassword ``` - 创建索引:使用以下命令创建新索引: ``` devpi index -c myindex bases=root/pypi ``` - 上传软件包:使用以下命令上传软件包: ``` devpi upload yourpackage.tar.gz --index=myindex ``` 2. 使用bandersnatch Bandersnatch是一个开Python软件包下载工具,可以用来同步PyPI索引并创建本地的私有PyPI库。使用Bandersnatch,你可以轻松地创建、管理和分享Python软件包。下面是使用Bandersnatch建立私人PyPI库的简单步骤: - 安装Bandersnatch:可以使用pip命令进行安装,如下所示: ``` pip install bandersnatch ``` - 配置Bandersnatch:在/etc/bandersnatch.conf文件中配置Bandersnatch,指定要同步的PyPI和本地的私有PyPI库。 - 同步PyPI:使用以下命令同步PyPI: ``` bandersnatch mirror ``` - 启动Bandersnatch:使用以下命令启动Bandersnatch: ``` bandersnatch mirror ``` - 上传软件包:使用以下命令上传软件包: ``` twine upload --repository-url http://localhost:8080 yourpackage.tar.gz ``` 这些步骤可以帮助你建立一个私人的PyPI库,以方便你管理和分享Python软件包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值