内网搭建 Pip 源方案之 Pypiserver

2023-05-16

前言

遇到开发环境是内网,项目第一次搭建的时候
需要安装许多的python三方模块
除了手动一个个安装,有时候还要处理相互依赖的模块,费时费力
能不能像在 外网 环境一样,在 内网 使用 pip 优雅的下载、安装模块~
最好还能让内网同事一起使用的方案呢?

一、自建 pip 源方案

没有枪炮,那就自己造嘛~
目前我找的方案有下列四种,按简单到复杂排列
根据实际情况,我只用到了第一种,是前三个中最简单的
第四种需要大容量的存贮,暂不考虑

  1. pypiserver
  2. pip2pi
  3. devpi
  4. bandersnatch

二、使用 pypi-server 创建 pip 源

使用 pypi-server 创建私有 pip 源。
该方法简便快捷,但是需要手动下载所需要的安装包,并上传到 pypiserver 所在的服务器
适合项目和初期使用
Python 的版本要求是:3.6+

1. 服务器安装 pypiserver

去外网 pypi 下载 pypiserver-1.5.0-py2.py3-none-any.whl
传入内网机器,然后安装

pip install pypiserver-1.5.0-py2.py3-none-any.whl
or
pip3 install pypiserver-1.5.0-py2.py3-none-any.whl

2. 服务器新建模块包存放位置

以后传入内网的模块,都统一上传到部署了 pypiserver 的服务器上
这样团队中有人上传一次后,其他人需要该模块,就不用再花时间去外网找了~

# 创建安装包存储文件夹
$ mkdir /root/home/packages

3. 服务器配置运行 pypiserver

  • 方案一:手动开启服务,服务器重启失效
# 建议指定端口和文件夹启动服务,避免冲突
pypi-server -p 9090  /root/home/packages

# 不添加参数,默认使用 8080 端口和 packages 文件夹
pypi-server
  • 方案二:配置 systemd ,便于管理 pypiserver ^1,实现自启
    新建文件 /etc/systemd/system/pypi_server.service
[Unit]
Description=A minimal PyPI server for use with pip/easy_install.
After=network.target

[Service]
Type=simple
# systemd requires absolute path here too.
PIDFile=/var/run/pypiserver.pid
User=www-data
Group=www-data
# 启动命令&日志文件存放位置
ExecStart=/usr/local/bin/pypi-server -p 9090 -a update,download --log-file /var/log/pypiserver.log /root/home/packges
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
# 模块存放地址
WorkingDirectory=/root/home/packages

TimeoutStartSec=3
RestartSec=5

[Install]
WantedBy=multi-user.target

启用配置 & 管理

systemctl enable pypi_server

# 后期维护
$ systemctl status pypi_server    # 查看进程状态
$ systemctl stop pypi_server    # 终止 pypi_server 进程
$ systemctl start pypi_server    # 启动 pypi_server 进程
$ systemctl restart pypi_server    # 重新启动 pypi_server 进程

浏览器地址栏,输入 http://10.10.10.10:9090/simple
看到欢迎界面
Welcome to pypiserver

4. 客户端修改 pip 默认源

假设 pypiserver 部署在了 10.10.10.10 的内网服务器上
我们需要修改自己电脑的中 pip.conf 文件,通过 pip cofnig set 命令修改

  • 配置的语法是:pip config set [name] [value]
# 直接修改 pip 源地址为 pypiserver 服务器所在地址
pip config set global.index-url http://10.10.10.10:9090/simple
or
# 如果不想替换 pip 默认源
pip config set global.extra-index-url http://10.10.10.10:9090/simple

# 添加信任 pypiserver 服务器
pip config set global.trusted 10.10.10.10

# 查看修改结果:pip config list
global.index-url='http://10.10.10.10:9090/simple'
global.trusted-host='10.10.10.10'

5. 内网客户端使用 pip

无法连接外网的内网计算机,作为客户端使用服务器的pip源下载包
假设服务器的 IP 地址为 10.10.10.10

  • 已经参考步骤 4 配置了 pip.conf 可像在外网一样使用 pip 的
    pip install numpy
    

或者使用下面的命令,可以不用配置 pip.conf 文件
建议参考 4 配置 pip.conf,一劳永逸

pip isntall numpy --index-url http://10.10.10.10:9090/simple --trusted-host 10.10.10.10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内网搭建 Pip 源方案之 Pypiserver 的相关文章

  • Win10自动更新怎么永久关闭?服务、注册表、组策略、计划任务中全方位设置,永久解决!

    Win10自动更新就像打不死的小强 xff0c 不管怎么关闭 xff0c 之后还是会自动更新 xff0c 让不少小伙伴颇为不爽 今天通过4步 xff0c 在服务 注册表 组策略 计划任务中全方位设置 xff0c 彻底关闭Win10自动更新
  • vue3.0 router路由跳转传参(router.push)

    vue3 0取消了2 0部分api xff0c 所以路由跳转传值方式有所不同 这里主要讲编程式导航 xff0c 也就是router push location onComplete onAbort vue3 0新增API xff1a use
  • Linux下安装Xrdp,epel提示无软件包

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 xff0c 允许您以图形方式控制远程系统 使用 RDP xff0c 您可以登录到远程计算机并创建一个真实的桌面会话 xff0c 就像您已登录到本地计算机一样 CentOS
  • 二进制、八进制、十进制及十六进制间的转换最简单的方法

    二进制 八进制 十进制及十六进制的转换 1 四种常用进制概况 在讲解这四种常用进制间转换之前 xff0c 需要先清楚每种进制数都包含哪些数字 xff1a 在上面的图中很轻易的可以看出这四种进制数中数字元素的区别 xff0c 并且除了我们最常
  • 使用TensorFlow Lite 部署自定义对象检测模型

    使用TensorFlow Lite 部署自定义对象检测模型 1 2022 03 05 文章目录 使用TensorFlow Lite 部署自定义对象检测模型 1 一 訓練自定義模型 4 1 收集數據2 訓練模型 二 集成TFLite模型的步驟
  • 使用docker安裝GPU版pytorch

    1 在docker pytorch 網址找到自己需要的環境 網址 https hub docker com r pytorch pytorch tags 点击复制 devel 版 连接 此处以 docker pull pytorch pyt
  • docker ssh连接

    docker ssh连接 1 进入docker span class token function passwd span span class token comment add root passward 记住自己设置的密码 xff0c
  • Docker容器显示图形到宿主机屏幕

    Docker容器显示图形到宿主机屏幕 在 docker 内 span class token function apt span span class token function install span xorg span class
  • MeshLab——计算点云法向量求三角网格

    MeshLab 原始 1 点云分割 点击1后选中要删除区域 xff0c 点击2删除即可得到如下 xff1a 2 画三角网格 求法向量 Filters gt Normal Curvatures and Orientation gt Compu
  • Jetson nano 卡刷教程

    Jetson nano 卡刷教程 所需用的的软件资源操作步骤 所需用的的软件资源 1 镜像 jetson nano jp451 sd card image zip 可自己在官网下载 https developer nvidia com em
  • dockers移盘&挂载

    docker 目录移动到其他磁盘的操作 systemctl stop docker 停止dockersystemctl status docker 查看docker服务状态mv var lib docker media li 1d10567
  • window docker 教程

    window docker 教程 1 docker windows 安装2 Docker Windows 修改默认镜像文件位置2 1 更改Docker Desktop设定2 2 创建文件链接2 3重新启动docker即可 1 docker
  • element-ui upload 上传组件中on-success 声明方法不生效问题

    最近在学习vue 2 xff0c 实现element ui 框架中upload 上传文件组件碰到的一些坑 xff1a 1 上传文件成功后on success 声明的方法不执行 lt el upload class 61 34 upload
  • python导出环境依赖(requirements.txt)

    pip list format span class token operator 61 span freeze span class token operator gt span requirement txt 即可在同级目录得到一个re
  • 000-搭建Gitea-自己的git服务器

    000 搭建Gitea 自己的git服务器 1 什么是gitea 官网的介绍是 xff1a Gitea的首要目标是创建一个极易安装 xff0c 运行非常快速 xff0c 安装和使用体验良好的自建 Git 服务 我们采用Go作为后端语言 xf
  • mac版eclipse安装lombok

    步骤 xff1a 1 看图 2 右击图标 3 4 点击eclipse 进入文件夹 5 复制lombok jar到这里 官网 xff1a https projectlombok org 在这里下载一个 6 修改eclipse ini 加上两行
  • Oracle恢复数据到某一节点

    alter table 表名 enable row movement 开启表行移动 flashback table 表名 to timestamp to timestamp 39 20210824 15 55 00 39 39 yyyymm
  • Oracle创建序列

    create sequence SEQ SHARE ID minvalue 1 增长最小值 maxvalue 9999999999 增长最大值 也可以设置NOMAXvalue 不设置最大值 start with 1 从1开始计数 incre
  • idea好用的插件分享(一)---any-rule(正则表达式插件)

    any rule一个常用正则表达式大全 在idea的插件市场中搜索any rule插件 xff0c 安装好后重启idea 在编辑器页面右击 xff0c 可以选中any rule打开搜索框 xff0c Mac系统也可以使用option 43
  • Mac上好用的连接服务器的工具(Termius)

    虽然 Mac本身的终端自带远程连接的作用 xff0c 但是长时间不操作 xff0c 会失去连接 xff0c 就让人很烦恼 xff0c 而且 xff0c 传输文件也必须用命令 xff0c 就很令人烦恼 所以 xff0c 本次推荐的是Termi

随机推荐

  • JDBC连接Mysql8.0失败解决方法(终极版)

    mysql8 0驱动下载地址 xff1a 链接 https pan baidu com s 1BvB P1 Ztt8vI0fCBVjvg pwd 61 ygb4 提取码 ygb4 复制这段内容后打开百度网盘手机App xff0c 操作更方便
  • Java如何实现输入流的复制?(输入流重复使用)

    众所周知 xff0c Java的输入流只能读取一次 xff0c 但是实际操作中我们想要重复操作inputStream就会出现问题 那如果是操作同一个inputStream xff0c 我们可以通过转字节流的方式来解决 64 param in
  • Mysql中SQL语句中日期格式转换(DATE_FORMAT()篇)

    鉴于平时时常会用到日期格式的转换 xff0c 以提供给前端正确的时间显示格式 格式化的方式比较多 xff0c 比如Java方式 xff0c 举个栗子如下 xff1a Date date 61 new Date SimpleDateForma
  • 如何升级nodejs版本

    nodejs怎么升级版本 xff1f 这里介绍三种方法 方法一 xff1a 用n升级nodejs xff08 建议使用此方法 xff09 查看当前node版本 node v 清除npm缓存 npm cache clean f 全局安装n n
  • 初识编程语言Python

    什么是编程语言 学习知识 最快速的掌握方式就是搞清楚它的素质三连 1 它是什么 2 它有什么用 3 它该怎么用 学习一个东西 最重要的就是搞清楚本质和实质 编程源自于生活 gt 多用生活的例子来理解编程思路 编程语言的本质 39 语言 39
  • 分组查询——组内排序展示组内数据(row_number() over(partition by) 函数详解)

    日常开发中可能遇到很多分组的业务需求 xff0c 比如分组查询后取第一条 组内排序等 xff0c 除了用group by来做分组 xff0c 我们还可以使用row number over partition by 这个函数来解决分组问题 简
  • 复制List<Object>集合遇到的“坑“

    记一个使用List lt Object gt 复制的坑 问题经过 xff1a 有一个需求 xff0c 需要返回结果组成装成Map lt String List lt Object gt gt 这种格式 xff0c Map的可以就是字符串没啥
  • Mac上好用的redis客户端推荐

    推荐mac一个开源免费 好用的redis客户端 xff1a QuickRedis 它支持直连 哨兵 集群模式 xff0c 并且UI是可以的 xff0c 并且支持树形展示 同时支持json格式展示 xff0c 最基本的命令行模式也支持 xff
  • 实现java项目idea打包发布至服务器(完整版)

    问题 xff1a 如何快速部署本地代码到服务器 xff1f 今天介绍的是使用idea的一款插件 Alibaba Cloud Toolkit 实现 xff0c 首先需要在自己的服务器上安装运行环境 xff0c 包括 xff1a jdk mav
  • Mac删除已卸载软件残留启动台的图标

    问题 xff1a mac在卸载一些非商店安装的软件 xff0c 图标可能会残留在启动台 xff0c 即使拖动到废纸篓也删除不掉 解决 xff1a 点击访达 前往 前往文件夹 2 输入 xff1a private var folders 然后
  • java日期的计算(当月剩余天数、获取日期当月的天数)

    日常开发中会遇到关于日期的计算比如 xff1a 当月的天数 两日期之间的天数 当月剩余天数等等 下方为关于日期计算的demo xff0c 后期会持续更新 获取日期当月的天数或某月总天数 获取日期当月的天数 64 param dateStr
  • 日常问题(1)——Mysql中not in 会过滤null值的行

    结论 xff1a 使用not in时应注意该字段是否存在null值得情况 xff0c 因为使用时会将null值得行过滤掉 not in使用时会过滤字段为null值得行 in 不会统计null值得行 xff0c 不受null值影响 原因 xf
  • 解决:Docker下运行Mysql出现:无法登陆问题以及无法加载身份验证的问题

    前言 用于帮助大家解决问题 xff0c 拒绝转载 问题 无法加载身份验证插件 caching sha2 password Authentication plugin span class token string 39 caching sh
  • Windows wsl2安装Ubuntu

    wsl Windows Subsystem for Linux 即适用于Windows的Linux子系统 xff0c 是一个实现在Windows 10 11上运行原生Linux的技术 wsl2 为其迭代版本 xff0c 可以更好的在Wind
  • MySQL删除表数据 MySQL清空表命令 3种方法

    一 MySQL清空表数据命令 xff1a truncate SQL语法 xff1a truncate table 表名 注意 xff1a 不能与where一起使用 truncate删除数据后是不可以rollback的 truncate删除数
  • HOG特征(Histogram of Gradient)总结

    在做的项目有用到HOG 43 SVM这一方面的知识 虽然很久之前的内容了 xff0c 所以记录一下 1 HOG特征 xff1a 方向梯度直方图 xff08 Histogram of Oriented Gradient HOG xff09 特
  • Nginx在windows和linux系统上安装和配置部署,有这篇就文章就够了

    Nginx是什么 xff1f Nginx是一个高性能的Web服务器和反响代理服务器 xff0c 也可以作为邮件代理服务器 题外话之什么是正向代理和反向代理 xff1f 正向代理 xff1a 类似一个跳板机 xff0c 代理访问外部资源 比如
  • OpenStack环境搭建(三:Computer与Controller节点的安装及配置)

    实验要求 xff1a 完成Virtual box平台安装 xff0c 会应用相关操作 xff1b 在virtual box虚拟平台上部署Fuel Master节点 xff1b 在virtual box虚拟平台上部署计算节点Computer
  • B站评论爬虫--爬取游戏主页评论

    由于公司需要监控到不同时间段用户观点的变化 xff0c 需要爬取各个平台下我们用户的评论 xff0c 因此 xff0c B站评论爬取的需求诞生啦 xff01 xff01 看了网上的其他教程 xff0c 都没有我这个类型的 xff08 大多数
  • 内网搭建 Pip 源方案之 Pypiserver

    前言 遇到开发环境是内网 xff0c 项目第一次搭建的时候 需要安装许多的python三方模块 除了手动一个个安装 xff0c 有时候还要处理相互依赖的模块 xff0c 费时费力 能不能像在 外网 环境一样 xff0c 在 内网 使用 pi