• 内网建自己的pip源


    一. 下载数据包

    清华源为示例

    import requests
    import bs4
    import re
    import wget
    a = requests.get("https://pypi.tuna.tsinghua.edu.cn/simple").text
    b = bs4.BeautifulSoup(a, "html.parser")
    s = b.find_all("a")
    count=0
    with open("/Users/dongxiang/code/whl/pypi.txt", "w") as f:
       for i in range(len(s)):
          tree=requests.get("https://pypi.tuna.tsinghua.edu.cn/simple/"+s[i].text ).text
          tree_parser = bs4.BeautifulSoup(tree, "html.parser")
          real_name = tree_parser.find_all("a")
          for i in range(len(real_name)):
             ##print(str(real_name[i].text )+ "\n",str(count))
             count=count+1
             whlname=real_name[i].text
             ###此处只下载python3.10版本的whl
             if (re.findall(r'cp310', whlname) or re.findall(r'none-any', whlname) )and re.findall(r'.*\.whl', whlname) :
                #print(real_name[i].text+" URL:https://pypi.tuna.tsinghua.edu.cn/simple/"+real_name[i].attrs['href']+"\n")
                #f.write(real_name[i].text+" URL:https://pypi.tuna.tsinghua.edu.cn/simple/"+real_name[i].attrs['href']+"\n")
                wget.download("https://pypi.tuna.tsinghua.edu.cn/simple/s[i].text/"+real_name[i].attrs['href'],"/Users/dongxiang/code/whl"+real_name[i].text)
    f.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    二. 建立索引

    需要先安装python,最好创建虚拟环境。参考我的另一个文章。

    本地安装pip2pi

    pip install pip2pi
    
    • 1

    命令行切换到下载的 .whl文件夹,建立索引(自动生成了index.html)

    dir2pi -S 【某文件夹】此处为/Users/dongxiang/code/whl
    
    • 1

    然后文件夹内就出现了一个simple文件夹,这里的内容就和阿里、清华、豆瓣的源差别没那么大了。

    注意如果是在Linux 环境下,这个S 要用小写的。

    三. 安装nginx

    不同的系统环境安装方式不同,具体可以网上查找即可。

    • Linux :
    yum install nginx
    
    • 1

    第一步: yum install nginx

    安装命令执行完等待安装完成即可
    第二步: cd /etc/nginx

    安装完成后nginx的目录
    第三步: service nginx start

    如果访问不了,可能是防火墙问题

    添加 --permanent永久生效,没有此参数重启后失效 这里的6379为redis服务的端口,若为其他服务设置,需要对应端口
    firewall-cmd --zone=public --add-port=6379/tcp --permanent 
    重新载入
    firewall-cmd --reload
    查看所有打开的端口: 
    firewall-cmd --zone=public --list-ports
    防火墙的关闭: 
    systemctl stop firewalld	//一般不用
    防火墙的启动: 
    systemctl start firewalld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    查看安装目录

    rpm -ql nginx

    4、运行起来,就可以直接输入 ip 地址查看了,端口默认是 80

    sudo service nginx start

    5、nginx 默认配置文件的路径

    /usr/local/nginx/nginx-1.13.7/conf

    或者

    /etc/nginx/nginx.conf
    停止 nginx:nginx.exe -s stop
    重新加载:nginx.exe -s reload
    退出:nginx.exe -s quit

    • Windows:
      直接解压压缩包到指定位置即可。

    四. 配置nginx

    修改/etc/nginx/nginx.conf配置文件
    Windows版
    在这里插入图片描述

    修改nginx.conf

    server { 
    	listen 8888; 
    	# server_name 10.10.2.33:8888; 
    	server_name 127.0.0.1:8888; 
    	charset utf-8; 
    	location / { 
    	root C:/develop/Projects/pypip/whl/simple;
    	autoindex on; 
    	autoindex_exact_size off; #显示文件的大小
    	autoindex_localtime on; #显示文件时间 
    	#limit_rate_after 5m; #5分钟后下载速度限制为200k 
    	#limit_rate 200k;
    	} 
    	access_log logs/pip.log; 
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    linux 参照这个修改即可。

    五.展示

    在这里插入图片描述

    完成之后可以把刚才下载的包直接删除,但是simple文件夹内的不能删。就是说simple文件夹的上一层内的可以删除。红框内可删。
    在这里插入图片描述

    如果需要临时加一些包的话。
    按如下操作:
    现在需要在whl 中增加whl2中的包
    在这里插入图片描述

    把whl2 中的问价夹放到whl中
    在这里插入图片描述

    如图
    在这里插入图片描述

    然后修改whl中的index.html
    把whl2中的index.html内添加到whl中的index.html。
    如图
    图1
    在这里插入图片描述

    图2
    在这里插入图片描述
    最好按字母顺序排序一下。

    另外我写了批量下载清华源等源到本地的代码。这里就不上传了。有问题的话可以邮箱 grantwtt@163.com

  • 相关阅读:
    俩个不同对象的List获取交集通过属性来判断,JDK8Stream的使用
    【SpringBoot项目】一文掌握文件上传和下载【业务开发day04】
    百度现在应该怎么去做搜索SEO优化?(川圣SEO)蜘蛛池
    【C++】面向对象模型 ① ( 面向对象设计 | 面向对象底层实现机制 | 程序内存结构 )
    交换机堆叠与集群
    metersphere获取日志文件
    Word文档里面如何给内容进行注释添加
    C++学习笔记--函数重载(2)
    计算机毕业设计之java+ssm基于web的校园短期闲置资源置换平台
    数据结构初阶--顺序表(讲解+C++类模板实现)
  • 原文地址:https://blog.csdn.net/qq_42817360/article/details/132690819