搭建自己的pypi镜像库

从零搭建本地pypi镜像源1:快速体验 许多公司,出于数据安全与知识产权的原因,在公司内部搭建局域网进行算法开发。配置一个本地的pypi镜像源对工程开发十分重要。搭建本地pypi镜像源的工具有多种,本文主要介绍pip2pi方法。 阅读详情
AI摘要

本文介绍了在Windows环境下搭建本地Python包仓库PyPI镜像库的详细步骤,包括使用pip2pi下载包,创建仓库目录,修改index.html,配置nginx服务器,以及如何使用自建镜像库安装包。遇到的问题如文件名不兼容和nginx配置,文中也给出了解决方案。

1.下载pip2pi,并安装(下载地址)

2.新建一个目录“D:\program\python\package”,用于存储pypi文件,作为仓库目录 

3.下载python中的所需包放至仓库文件夹“D:\program\python\package”

        可以手动下载自己需要的文件包到该目录下,或者利用清华镜像库来下载所有的文件包。
可以使用如下方式下载全部的镜像文件(从清华镜像库中下载):

(3.1)将清华pypi镜像库文件列表粘贴到requirement.txt文件中。

import requests
import re
report = requests.request('get','https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/')
# print(report.text)
text_str = str(report.text).split('\n')
with open('requirement.txt','w+') as f:
    for i in text_str:
        temp = re.findall('<a href="(.*?)/">',i)
        # print(i,temp)
        if temp != []:
            f.write(str(temp[0])+'\n')

(3.2)根据requirement.txt下载所有的镜像库文件:

#!/bin/bash
import os
file="C:\\software\\package\\requirement.txt"

with open(file,'r+') as f:
    text = f.readlines()
    for i in text:
        os.mkdir('C:\\software\\package\\'+i[:-1])
        os.system('pip download '+i[:-1]+' -i https://pypi.tuna.tsinghua.edu.cn/simple -d '+'C:\\software\\package\\'+i[:-1])

4.在cmd窗口中执行:

dir2pi 仓库目录

目录下多了一个simple目录,且simple目录里会自动创建每个软件包的目录。

在这里插入图片描述

这里如果是在windows上操作,会存在一个问题(我就遇到了):

在这里插入图片描述

解决方法:用管理员身份打开cmd.

或者:需要去修改simple目录下每个软件包目录下的index.html文件(此部分修改可自行写个python脚本批处理下):
手动操作示范:

在这里插入图片描述

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

脚本修改:

import os 
import glob


class Class_Util_Text():
    def __init__(self):
        pass

    def read_text(self,text_path):
        """
        读取本地text文件到列表,并返回该列表
        """
        assert os.path.exists(text_path)
        with open(text_path,"r") as f:
            lines=f.readlines() #读行
        return lines

    def write_text(self,text_path,text_content):
        """
        把文字写入文本文件中,会清空文本文件的原有内容
        """
        with open(text_path,"w") as f:
            f.writelines(text_content)
            f.writelines("\n")

    def append_text(self,text_path,text_content):
        """
        把文字添加到文本文件的末尾,保留原文本文件内容
        """
        with open(text_path,"a") as f:
            f.writelines(text_content)
            f.writelines("\n")

    def replace_text(self,text_path,replace_old,replace_new):
        """
        替换文本文件中的部分文字,先读文件,替换文字后,再重新写入文件
        """
        #read
        with open(text_path,"r") as f:
            lines=f.readlines() 
            data=[]  
            for i in lines:
                #根据条件修改
                if(replace_old in i):
                    i=i.replace(replace_old,replace_new)   #修改 replace_old 为 replace_new
                data.append(i)     #记录每一行      
        #write
        with open(text_path,"w") as f:
            for i in data:
                f.writelines(i)



if __name__ =="__main__":
    txt_obj = Class_Util_Text()
    dir_path = "D:\pypi-packages\simple"
    html_files = glob.glob(dir_path+"/*/index.html")

    for html_path in html_files:
        txt_obj.replace_text(html_path,replace_old="<a href='",replace_new="<a href='../../" )
        # txt_obj.replace_text(html_path,replace_old="<a href='../../",replace_new="<a href='" )
        lines = txt_obj.read_text(html_path)
        print(html_path)
        print(lines)

 5.安装nginx,修改nginx.conf:(nginx下载地址)

server{
    listen		8080;
    server_name 	127.0.0.1:8080;
    access_log 	logs/pip.log;
    location / {
            # root D:/program/python/package/simple/;##不work 
            root D:/program/python/package; #work, root路径需要在simple目录的前一层才行
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
    }
}

6.双击执行nginx.exe启动nginx

注意,如果系统中已经有nginx.exe在运行了,可以先关闭已经运行的nginx.exe程序。再重新执行nginx.exe程序。该程序双击执行即可,有一个对话框闪现一下然后立即消失了,这是正常现象。

在这里插入图片描述

7.访问 : http://127.0.0.1:8080/simple/,就可以看到搭建好的镜像库啦~

在这里插入图片描述

8.使用自己搭建的本地镜像库安装python相关软件包:

临时性:

pip install django -i http://127.0.0.1:8000/simple/

 永久性:

pip config set global.index-url http://127.0.0.1:8000/simple/
pip install django

转自:搭建自己的pypi镜像库_xiaomei-Liao的博客-优快云博客_搭建pypi镜像


更多参考(下载后其他布置环境的方法):从零开始搭建本地pip源_clkai的博客-优快云博客_搭建本地pip源

使用bandersnatch搭建pypi 本地镜像源(20211026)_liurizhou的博客-优快云博客_pypi 本地源

搭建、使用与维护私有PyPi仓库_何小有的博客-优快云博客_私有pypi

公司内网搭建Python pip 镜像站。 - 知乎

python搭建本地pip源,离线安装python模块 - 泉love水 - 博客园

Python3 搭建本地 PyPi 源_极客点儿的博客-优快云博客_pypi 本地源

快速搭建私有pip镜像源_m_merlon的博客-优快云博客_自己搭建pip源


查看pypi所有文件的大小:

Statistics · PyPI


后记: 

1. 在win10环境下安装镜像容易存在多个问题,

1)一些文件名不符合win10标准,在dir2pi的时候会报错,我的处理方式是删除了这些文件。这个问题肯能在linux上不存在。

2)在win10下,执行dir2pi确实遇到了第四节中的错误,按照说明操作即可。

3.)nginx.exe的作用是把index.html暴露给浏览器,使得浏览器可以通过网址访问索引html,所以只需要最简单的功能即可。当刷新nginx.exe不成功时,应该是已经有多个nginx.exe在运行了,需要关掉这些正在运行的nginx.exe才能刷新nginx的配置。

2. 可能在linux上不存在这么多问题。所以,还是要选择linux作为服务器,而不是windows系统。

20个常用的Python镜像地址(附指定镜像方法) 8. 中国科学技术大学镜像:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/5. 华为云镜像:https://mirrors.huaweicloud.com/repository/pypi/simple/15. 西北大学镜像:https://mirrors.nwafu.edu.cn/pypi/web/simple/11. 南京大学镜像:https://mirrors.nju.edu.cn/pypi/simple/ 阅读详情

相关推荐

PyPI的安全问题及编程实践

通过采取一些编程实践,如定期更新软件包、验证软件包的可信性、检查软件包的依赖关系、使用虚拟环境、使用软件包签名和使用安全的网络连接,可以加强项目的安全性,并降低潜在的风险。请记住,保持软件包和依赖项的最新状态,并谨慎选择和验证可信的软件包是确保项目安全的重要步骤。然而,由于其开放的特性,PyPI也存在一些安全问题,如潜在的恶意软件、依赖漏洞和代码注入等。通过使用虚拟环境,您可以确保每个项目都有其独立的Python环境,避免不同项目之间的冲突。这将显示软件包的依赖树结构,您可以查看每个依赖项的版本和安全性。

CodeLancerX的博客 502

全面解析 python 包管理工具 pip

The Python Package Index 是 python 软件包的存储库。在这里可以找到社区中你需要的 python 软件包。pipy 中有 50+ 多万个项目,500+ 万加的释放,以及 76+ 万的用户。python 生态庞大,值得拥抱。The Python Package Installer python 的包管理工具requirements.txt 是 python 在不同的环境中对依赖包的一种约定,用于列出 Python 项目中所有的依赖包以及对应版本号的文本文件。

程序员小麦的博客 5093

Gitlab 软件库和镜像库

打开 Node JS 项目,编辑 package.json 文件,修改项目名称 加入 scope 例如 "name": "demo" 改为 "name": "@netkiller/demo",设置一个版本号 "version": "0.0.1",然后将 "private": true 改为 "private": false。修改配置 /etc/gitlab/gitlab.rb 文件,将 registry_external_url 的值修改为 http://registry.netkiller.cn。

1042

pypi是什么?

PyPI是Python Package Index的缩写,是一个官方的、由Python社区维护的Python软件包仓库。在PyPI上,您可以找到几乎所有的Python包和库,这些包和库可以帮助您完成各种任务,如数据科学、机器学习、网络编程、Web开发等。通过PyPI,您可以使用Python自带的包管理器pip安装和管理Python软件包。pip会从PyPI上下载软件包并自动安装它们。PyPI也支持包的版本管理和发布,使得Python社区中的开发人员和用户可以很方便地共享和使用Python软件包。

weixin_44943389的博客 4078

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型(附配置教程)

本文提供了NVIDIA DGX Spark在桌面端运行200B参数大模型的完整实战指南。详细介绍了从硬件初始化、系统配置、容器化环境搭建,到模型加载、量化、推理流水线编写及性能调优的全过程。重点阐述了如何利用其统一内存架构和TensorRT-LLM等工具进行高效本地推理,并探讨了通过双机互联扩展以应对超大规模模型的方法。

i3j4k5的博客 782

网络攻防技术——MD5碰撞试验

一、题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。 c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。 d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的M

学习记录 3621

搭建企业内网pypi镜像库,让python在内网也能像互联网一样安装pip库

【代码】搭建企业内网pypi镜像库,让python在内网也能像互联网一样安装pip库。

xzzteach的博客 2747

【毕设课设】基于YOLO v3与LSTM的水位智能识别系统(附完整源码+数据集)

本文详细介绍了基于YOLO v3与LSTM的水位智能识别系统的完整实现方案。该系统通过YOLO v3精准定位水位尺数字,结合LSTM-OCR进行序列识别,并融合霍夫变换检测刻度线,实现高精度水位自动读取。项目提供了从环境搭建、模型训练到集成部署的全流程指南,并附有完整源码和数据集,是理想的毕设课设实战项目。

php55的博客 609

【Python】【PyPi】搭建本地PyPi镜像源

搭建本地PyPi镜像源,主要是便于局域网内部用户安装Python模块。配置流程不算复杂,按步进行即可。

非凡博客 4750

Arcgis栅格裁剪批处理工具

Arcgis栅格裁剪批处理工具

yilvyangguang520的博客 2173

【目标检测】基于yolov5的铝型材表面缺陷检测(附代码和数据集,Ubuntu或者Linux系统均可运行)

【目标检测】基于yolov5的铝型材表面缺陷检测(附代码和数据集,Ubuntu或者Linux系统均可运行)

学无止境、积少成多、厚积薄发 2170

镜像库 & 安装Keras-ocr

镜像库 & 安装Keras-ocr

qq_43494793的博客 2271

Python 实战:全面解析“微信搜一搜”内容爬取,从入门到企业级架构

本文将带你从零搭建爬虫项目,采用 Requests、Scrapy、Selenium、Proxy 池、中间人监控(如 Fiddler/mitmproxy)、分布式调度、数据库持久化、断点续抓等方案,实现可持续、抗封能力强的内容抓取系统。理解“微信搜一搜”页面结构与 Javascript 渲染逻辑;使用 Scrapy 框架搭建分布式爬虫;使用 Selenium 模拟浏览器抓取;构建代理池提升爬取成功率;对抗验证码、IP 封禁与 cookie 过期问题;

2201_76125261的博客 1393

Python pypi问题

问题描述:         ReadTimeoutError: ReadTimeoutError: HTTPSConnectionPool(host=’pypi.python.org’, port=443): Read timed out. 这是因为国外的PyPI的速度比较慢. 国内有相应的镜像网站,和其进行同步,连接速度加快. 方法1: 国内P

Cocoon 1817

Cleo Synchronization接口任意文件读取漏洞CVE-2024-50623 附POC

微信公众号搜索:南风漏洞复现文库该文章 南风漏洞复现文库 公众号首发Cleo。

nnn2188185的博客 480

05 - GRACE数据处理-球谐展开与球谐综合

GRACE数据处理-球谐展开和综合前面在介绍GRACE相关理论的时候提到过下面的公式,从公式形式上可以看出,面密度变化和球谐系数(CS)之间是能够相互转换的,那这个转化的过程可以称为球谐展开,简单理解就是将全球网格数据转化为球谐系数的过程。而球谐综合可以看作是球谐展开的逆过程,利用球谐系数计算到全球格网分布。

weixin_43339605的博客 1050

Python库下载太卡了!解锁Python镜像库的高效秘诀

镜像库是将Python官方源(如PyPI)的库副本存放在一个或多个服务器上,以便用户可以从地理位置更近、速度更快的源下载和安装Python库。使用镜像库可以显著提高下载速度,避免因网络问题导致的安装失败。

pythondh1的博客 827

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

各种镜像库网址

镜像库 pip install 库名 -i https://pypi.tuta.tsinghua.edu.cn/simple清华大学 http://mirrors.aliyun.com/pypi/simple/ 阿里云 http://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣 http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学

qq_43602554的博客 343

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

对比:传统vs使用国内镜像库的Docker构建效率

上实践时,发现其内置的Docker环境已经预配置了镜像加速,省去了手动配置的麻烦。为了保证结果可比性,我们使用同一台2核4G的云服务器,分别测试官方Docker Hub和三个主流国内镜像库(阿里云、腾讯云、华为云)。实测发现,简单的配置变更就能带来构建效率的质的飞跃。比如在CI流水线中,原先需要10分钟的构建任务,通过组合使用国内基础镜像+私有npm/pypi源,可以压缩到2分钟以内。最近在团队内部做了一次Docker构建效率的对比测试,发现切换国内镜像库能带来惊人的效率提升。

GoldEagle19的博客 525

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pip安装pyecharts_python镜像库

pip安装pyecharts 参考:https://blog.youkuaiyun.com/qq_31061155/article/details/96567862?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task pip install -i https://...

wj1298250240的博客 8334

python 库安装失败情况下可以使用镜像库 备用

报错: 有时候公司办公网络差,或者策略禁了一些网站,可以使用镜像库去安装。 ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/d0/1b/2f292bbd742e369a100c91faa0483172cd91a1a422a6692055ac92

LlanyW的专栏 584

linux环境搭建pypi源,使用pypi-server搭建简单的PyPI源

pypiserver 是一个最基本的PyPI服务器实现, 可以用来上传和维护Python包. 本文介绍 pypiserver 在Ubuntu上的基本安装, 配置和使用.1. 基本安装和使用1.1 安装和启动pypiserver 可以在Python 2或者Python 3下运行. 使用pip就可以安装:pip install pypiserver启动 pypiserver 使用以下命令:pypi-s...

weixin_39753674的博客 294

ubuntu14.04下利用pypi-server搭建本地的pip库

应实验室需要,自己动手实现了一个pip本地仓库。其实搭建起来很简单,重点在于对本地不存在包的处理。这里我设置的机制是当本地不存在所请求的包时继续维持连接,同时从阿里的pip镜像源中将该包下载到本地以供用户下载。于是,问题主要在于获取所缺失包的信息。 我的解决方法是:当pypi-server在本地找不到所请求包时跳转到主机的另一端口,在此端口上运行一个监听程序,从HTTP请求中获取所要下载的包

Alvin's Planets 1255

直接pip装库很慢?更换成镜像库装库只用几秒

PIP更换国内镜像库 临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 默认使用 windows系统使用cmd快速设置 pip install pip -U # 升级pip到最新版本 pip config set global.index-url https://pypi.tuna.tsing...

Onmydreamway的博客 145

python如何安装第三方库(镜像库),快速简单易上手

pip属于是外国的网站所以我们下载它网速很慢,所谓镜像库就是在我们国内建立的一个网站,我们使用镜像库就可以下载的更快。在python中,标准库中的函数往往不能满足我们的使用,因此我们需要从pip中下载安装第三方库,来使用其他人创造的函数,下面让我们来看看如何下载吧!。

to_mountain的博客 1263
上一篇: PyQt: 添加插件及槽函数
下一篇: pip 批量下载包与批量安装包
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值