【随手记】使用Flask做代理为虚拟机提供pip源

最近在重做虚拟机环境,虚拟机不可连外网,最初python包都是通过离线whl进行安装。但是离线文件已经找不到了,不想重新去一个个下载,而且本地环境跟虚拟机环境也不一致,pip download可能会遇到版本问题,遂考虑通过开个代理服务来中转一下请求。开始以为会很麻烦,做完发现也就一点点代码,简单记录一下。

主要就是Flask服务和爬虫的思路。

环境:

  • 一台虚拟机(A)
  • 一台能与虚拟机通信的主机(B),局域网IP为:192.168.101.55

步骤:

1、在B上开启一个服务,使用Flask比较简单,代码如下:
其中重新请求的url为pypi源,网上随便找个源都可以,这里使用清华源

import requests
from flask import Flask, requestapp = Flask(__name__)@app.route('/<path:req_url>')
def pypi_request(req_url):url = f'https://pypi.tuna.tsinghua.edu.cn/{req_url}'response = requests.request(request.method, url)return response.contentif __name__ == '__main__':app.run('0.0.0.0', port=3333, debug=True)

2、把A机器上的python换源
在当前用户的主路径下创建pip.conf

cd ~/
mkdir .pip
cd .pip
vi pip.conf

写入内容如下

[global]
index-url = http://192.168.101.55:3333/simple/
[install]
trusted-host = 192.168.101.55

3、使用pip命令安装包吧,以安装pillow为例

pip install pillow

可以看到请求的url已经变成了B开启的服务,并且安装成功
在这里插入图片描述
具体的请求内容可以看Flask中的日志,主要就2个GET请求,猜测解析符合版本的逻辑是在pip里面做的,因此先获取包的版本信息,再根据下载链接去获取包。
在这里插入图片描述

这里A是在docker中,所以显示的IP跟B一样了。问题不大。

同理:

如果要部署生产环境,可以先搞个虚拟机做成同样环境,然后使用pip download把需要的包全部下下来,就可以避免本地环境不一致和冲突问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8070.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【对象存储】那些事

最近在某个项目中使用了对象存储。以前看过一个新闻&#xff1a;某公司的对象存储被盗刷&#xff0c;一夜之间账户欠费几十万&#xff01;我们这点小买卖可经不起这么折腾&#xff01;所以下功夫研究了下&#xff0c;防患于未然。 说到防盗刷&#xff0c;我们还得了解对象存储是…

前端实战——尚品汇(网页开发)

/* 基础设置 */ .container {width: 1190px;margin: 0 auto; } /* #region顶部导航条start */ .topbar {height: 30px;background-color: #ececec; } .welcome {height: 30px;line-height: 30px;font-size: 0;color: #666; } .welcome span,.welcome a {font-size: 12px; } .we…

(五)python实战——使用sqlalchemy完成Sqlite3数据库表的增、删、查、改操作案例

前言 本节内容我们使用sqlalchemy框架完成Sqlite3数据库表的增删查改等常规操作&#xff0c;相较于原生Sqlite的数据库操作&#xff0c;sqlalchemy通过ORM映射完成实体对象的映射&#xff0c;通过映射关系完成对象和数据的转换&#xff0c;完成数据的操作。 正文 ①在项目中…

Matlab|改进的粒子群算法优化支持向量机(回归拟合)

作者在前面的文章中介绍了粒子群算法的原理及其2种改进算法&#xff0c;本文将基于这三种优化方法&#xff0c;应用于支持向量机进行预测&#xff0c;并对比改进算法与标准粒子群算法的预测性能&#xff0c;结果显示改进后的方法能够得到更佳的预测效果。 00 文章目录 1 支持…

jupyter中如何管理内核

1、jupyter notebook如何和已有的虚拟环境关联起来&#xff1a; 如果在电脑中某个conda的虚拟环境中已经安装了jupyter&#xff0c;其他虚拟环境想要作为内核在jupyter中使用&#xff0c;分为两个步骤&#xff1a; 第一步&#xff1a;在没有jupyter的环境中下载ipykernel&…

SPI机制

SPI机制是Service Provider Interface&#xff0c;是服务提供发现机制&#xff0c;用来启用框架扩展和替换组件。比如java.sql.Driver接口&#xff0c;其他不同厂商可以针对同一接口做出不同的实现&#xff0c;MySQL和PostgreSQL都有不同的实现提供给用户&#xff0c;而Java的S…

局部均方差滤波(磨皮)

note 锚点灰度值 用 原图像对应点的原灰度值 和 局部均值加权得到 局部均值 由 掩膜 区域计算得到 权重 由 局部方差 与用户输入参数计算确定 code // 局部均方差滤波 /*\brief 局部均方差滤波\param src:原矩阵&#xff0c;单通道\param res:结果矩阵\param size:掩膜矩形…

电动力学复习提纲

电动力学复习提纲 电动力学核心知识点 电磁场能量密度和能流 场和电荷的能量守恒电磁场的能量密度和能流密度 电偶极矩&#xff0c;磁偶极矩和电四极矩 电极化强度矢量与电偶极矩 磁化强度与磁偶极矩 电势的多级展开 磁矢势的多级展开 非相对论体系的电磁能 静电能 小区…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 在线考试管理系统的设计与实现

一.项目介绍 学生在线考试系统分为三类角色 超管、老师、学生 超级管理员&#xff1a;维护考试管理、提供管理、成绩查询、学生管理以及教师管理 老师&#xff1a;维护考试管理、提供管理、成绩查询以及学生管理 学生&#xff1a;我的试卷…

解决:yarn 无法加载文件 “C:\Users\admin\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本“ 的问题

1、问题描述&#xff1a; 其一、报错的整体代码为&#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yarn.ps1&#xff0c;因为在此系统上禁止运行脚本 // 整体的报错代码为 &#xff1a; yarn : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\yar…

Bootloader Design of PIC18 series MCU

注意&#xff1a;下列描述是在PIC单片机上启用Bootloader的一个相关知识的近似完备集。所有需要了解的&#xff0c;bootloader与用户态程序交互的理论知识都已给出。 1.概述 嵌入式产品化后&#xff0c;需要考虑现场升级&#xff0c;单片机如果需要添加现场升级功能&#xff…

【数据结构】带你玩转排序:堆排序、希尔排序、插入排序、选择排序、冒泡排序、快排(多版本)、归并排序

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 常见算法的实现 插入排序 希尔排序 堆排序 选择排序 冒泡排序 快速排序 Hoare版本 随机选Keyi 三数取中 挖坑法 前后指针版本 归并排序 常见算法的实现 插入排序 动画演示&…