如何搭建Python的本地Pypi源

前言

在实际生产环境中工作中,为了安全,内网主机是无法连接外网的,开发同事在写Python相关程序时,需要安装大量开发所需的模块,如果单独安装模块的话,有可能会存在大量的依赖,需要一个一个查找并安装,操作起来相当麻烦,为解决这个问题,打算在本地搭建一套属于自己的Pypi本地源,下面是操作方法,其中Linux和Windows操作类似,这里以Linux为例进行操作。

一、安装python环境

这里就不介绍python环境的安装过程了,大家可以自己从外网上查找安装方法,也可以参照以下文档中第2.2小节进行操作:

安装Milvus向量数据库_milvus 安装-CSDN博客

二、工具选择

搭建Python的本地Pypi源的有很多工具,如:pypiserver,pip2pi,bandsnatch,其中 pypiserver 上手难度最小,使用方便,功能简单。后两个适用于搭建企业级的源,因为其拥有自动同步包的功能。

本次采用的是pypiserver进行安装。

三、下载pypiserver

pypiserver下载比较简单,使用pip进行安装即可,大家可以在安装好Python之后进行该软件的安装,也可以在Python的虚拟环境中进行安装。

Python虚拟环境安装与配置,可以参照以下文档中的其中一个即可:

如何利用virtualenv和python命令创建Python虚拟环境-CSDN博客

安装anaconda3虚拟环境_conda 23.7.4-CSDN博客

安装操作如下:

(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ pip install pypiserver

四、创建包目录

(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ cd /iwen
(iwen_search) [iwen@kylinv10-sp1-iwen iwen]$ mkdir packages

注:大家可以根据自己的实际需求进行目录的创建。

五、启动pypiserver服务

进入到新建的packages目录下执行pypi-server run进行启动即可。

(iwen_search) [iwen@kylinv10-sp1-iwen bin]$ cd /iwen/packages
(iwen_search) [iwen@kylinv10-sp1-iwen packages]$ pypi-server run ./

如果大家想让它后台运行的话,运行pypi-server run时,后面加上&即可。

(iwen_search) [iwen@kylinv10-sp1-iwen packages]$ pypi-server run ./ &

注:启动时间相对来说会长一点,耐心等待即可。大家在当前目录下启动时,pypi-server run后面要加上./,否则就算启动成功了,也不能正常使用。

如果不加./启动成功后,访问的界面如下:

内容为空,并且使用curl命令也无法探测成功:

正常启动后,可以使用netstat -tnlp来查看pypi-server的启动占用端口情况,也可以使用ps -ef|grep pypi-server来查看启动情况。

如下图所示,其中标红部分是pypi-server的运行端口和进程:

六、访问和测试

6.1、浏览器访问

在浏览器在址栏中输入:http://ip:8080/simple即可访问查看,如下图所示:

6.2、包安装测试

通过安装一个包进行测试,查看本地pypi源是否生效。

(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip install -i http://192.168.10.4:8080/simple pillow
Looking in indexes: http://192.168.10.4:8080/simple
WARNING: The repository located at 192.168.10.4 is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host 192.168.10.4'.
ERROR: Could not find a version that satisfies the requirement pillow (from versions: none)
ERROR: No matching distribution found for pillow

在安装pillow时发现报错了,这个意思是说:pip不信任这个本地镜像源,如果要使用这个镜像源呢,可以加上“--trusted-host 192.168.10.4”。

再进行安装测试,安装成功:

(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip install -i http://192.168.10.4:8080/simple --trusted-host=192.168.10.4 pillow
Looking in indexes: http://192.168.10.4:8080/simple
Collecting pillowDownloading http://192.168.10.4:8080/packages/sentence-transformers/pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.4 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 17.3 MB/s eta 0:00:00
Installing collected packages: pillow
Successfully installed pillow-11.0.0
(iwen_search) [iwen@kylinv10-sp1-iwen aa]$ pip list|grep pillow
pillow                   11.0.0

到此为之,Python的本地Pypi源搭建完成,每次把包下载到所建的目录下,并且在该目录下启动pypi-server后,即可使用该本地镜像源进行安装,并能解决所需的依赖问题。

本次搭建的本地Pypi源公供开发测试使用,如果想要搭建企业级的Pypi私有源,需要定时同步官方的源,建议使用bandsnatch进行搭建使用。如果大家有兴趣的话,可以自己研究一下bandsnatch的搭建和使用,以供大家一起学习。

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

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

相关文章

iOS与Windows间传文件

想用数据线从 windows 手提电脑传文件入 iPhone,有点迂回。 参考 [1],要在 windows 装 Apple Devices。装完、打开、插线之后会检测到手机,界面: 点左侧栏「文件」,不是就直接可以传,而是要通过某个应用传…

如何高效地架构一个Java项目

引言 Java是企业级应用开发的主流语言之一,而我们作为使用Java语言的程序员,职称有初级、中级、高级、资深、经理、架构,但我们往往只是慢慢通过经验的积累迭代了自己的等级,如果没有保持学习的习惯,大多数程序员会停留…

pytest(一)csv数据驱动

一、csv数据驱动 csv文件内容 1,1,2 3,6,9 100,200,3000csv数据驱动使用方法 import csv import pytestdef get_csv():with open("data.csv") as file:raw csv.reader(file)data []for line in raw:data.append(line)# print(data) #[[1, 1, 2], [3, 6, 9],…

Linux C/C++编程之静态库

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com…

001集—— 创建一个WPF项目 ——WPF应用程序入门 C#

本例为一个WPF应用&#xff08;.NET FrameWork&#xff09;。 首先创建一个项目 双击xaml文件 双击xaml文件进入如下界面&#xff0c;开始编写代码。 效果如下&#xff1a; 付代码&#xff1a; <Window x:Class"WpfDemoFW.MainWindow"xmlns"http://schema…

优傲协作机器人 Remote TCP Toolpath URCap(操作记录)

目录 一、新机设置项 1、设置管理员密码 2、设置安全密码 3、设置负载 二、激活 Remote TCP & Toolpath URCap 1、插入U盘 2、打开激活面板 3、导入许可证 4、查看是否激活成功 5、启用功能 三、使用流程&#xff08;官方&#xff09; 步骤一 步骤二 步骤三 …

使用springboot-3.4.1搭建一个netty服务并且WebSocket消息通知(适用于设备直连操作,以及回复操作)

引入最新版本 <!--websocket--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>启动类加入 //netty 协议服务端口启动 NettyTcpHandler.start()…

从仪表盘探索 MongoDB 关键指标

这是 MongoDB 监控系列文章的第七篇&#xff0c;前面几篇文章的链接如下&#xff1a; MongoDB 监控&#xff08;一&#xff09;MongoDB 监控&#xff08;二&#xff09;MongoDB 监控&#xff08;三&#xff09;MongoDB 监控&#xff08;四&#xff09;MongoDB 监控&#xff08…

手机LCD分区刷新技术介绍

分区刷新也称为分区变频&#xff0c;LCD分区刷新功能的目的是将屏幕分为上下半区&#xff0c;分区显示不同帧率&#xff0c;上方区块High Frame Rate&#xff0c;下方区块Low Frame Rate。使用者可以动态自定义上方高刷显示区的结尾位置。 当前的智能手机屏幕上&#xff0c;显示…

php基础:文件处理

​​​​​​1.PHP 操作文件 读取文件并写到输出流的 PHP 代码如下&#xff08;如读取成功则 readfile() 函数返回字节数&#xff09;&#xff1a; <?php echo readfile("webdictionary.txt"); ?> 2.PHP 文件打开/读取/关闭 打开使用fopen&#xff08;&…

Redis高阶集群搭建+集群读写

问题 容量不够&#xff0c;redis 如何进行扩容&#xff1f;并发写操作&#xff0c; redis 如何分摊&#xff1f;另外&#xff0c;主从模式&#xff0c;薪火相传模式&#xff0c;主机宕机&#xff0c;导致 ip 地址发生变化&#xff0c;应用程序中配置需要修改对应的主机地址、端…

【H2O2|全栈】MySQL的基本操作(三)

目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询&#xff0c;与单表查询…

springboot vue 会员收银系统 (12)购物车关联服务人员 订单计算提成 开源

前言 完整版演示 http://120.26.95.195/ 开发版演示 http://120.26.95.195:8889/ 在之前的开发进程中&#xff0c;我们完成订单的挂单和取单功能&#xff0c;今天我们完成购物车关联服务人员&#xff0c;用户计算门店服务人员的提成。 1.商品关联服务人员 服务人员可以选择 一…

leetcode 1853 转换日期格式(postgresql)

需求 表: Days ----------------- | Column Name | Type | ----------------- | day | date | ----------------- day 是这个表的主键。 给定一个Days表&#xff0c;请你编写SQL查询语句&#xff0c;将Days表中的每一个日期转化为"day_name, month_name day, year"…

java操作doc(二)——java利用Aspose.Words动态创建自定义doc文档

有关java动态操作word文档&#xff0c;上一篇写了如何使用模板动态设置对于内容以及相关单元格的动态合并问题&#xff0c;详细请参看如下文档&#xff1a; java利用Aspose.Words操作Word动态模板文档并动态设置单元格合并 这篇文档说说&#xff0c;如何利用Aspose.Words动态…

仿蝠鲼软体机器人实现高速多模态游动

近期&#xff0c;华南理工大学周奕彤老师研究团队最新成果"Manta Ray-Inspired Soft Robotic Swimmer for High-speed and Multi-modal Swimming"被机器人领域会议 IEEE/RSJ International Conference on Intelligent Robots and Systems&#xff08;IROS 2024&#…

【网络原理】网络地址转换----NAT技术详解

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;计算机网络那些事 我们在 IP协议 一文中介绍过&#xff0c;由于IPv4协议中 IP地址只有32位&#xff0c;导致最多只能表示 42亿9千万个IP地址。但我们需要通过IP地址来标识网络上的每一个设备&#x…

D86【python 接口自动化学习】- pytest基础用法

day86 pytest配置testpaths 学习日期&#xff1a;20241202 学习目标&#xff1a;pytest基础用法 -- pytest配置testpaths 学习笔记&#xff1a; pytest配置项 主目录创建pytest.ini文件 [pytest] testpaths./testRule 然后Terminal里直接命令&#xff1a;pytest&#xff…

电机瞬态分析基础(15):电机的电磁转矩(三相同步电机和三相感应电机)

1. 三相同步电机电磁转矩 1.1 隐极同步电机 图1. 三相隐极同步电机基本结构 三相隐极同步电机的基本结构可用图1来简单表示&#xff0c;图中&#xff0c;定子分布绕组可等效为三相对称绕组A-X、B-Y和C-Z&#xff1b;转子分布绕组为励磁绕组。若在定子三相对称绕组中通入三相…

人工智能与机器学习在智能扭矩系统中的应用

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。】 在当今科技飞速发展的时代&#xff0c;智能扭矩系统正经历着一场深刻的变革&#xff0c;而人工智能&#xff08;AI&#xff09;和机器学习算法的应用成为了推动这一变革的关键力量。 传统的扭矩…