内网建自己的pip源

内网建自己的pip源

  • [一. 下载数据包](#一. 下载数据包)
  • [二. 建立索引](#二. 建立索引)
  • [三. 安装nginx](#三. 安装nginx)
  • [四. 配置nginx](#四. 配置nginx)
  • 五.展示

一. 下载数据包

以清华源为示例

cpp 复制代码
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()

二. 建立索引

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

本地安装pip2pi

cpp 复制代码
pip install pip2pi

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

cpp 复制代码
dir2pi -S 【某文件夹】此处为/Users/dongxiang/code/whl

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

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

三. 安装nginx

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

  • Linux :
cpp 复制代码
yum install nginx

第一步: yum install nginx

安装命令执行完等待安装完成即可

第二步: cd /etc/nginx

安装完成后nginx的目录

第三步: service nginx start

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

cpp 复制代码
添加 --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

查看安装目录

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

cpp 复制代码
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; 
	}

linux 参照这个修改即可。

五.展示

相关推荐
YuanDaima204815 分钟前
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
linux·运维·服务器·网络·人工智能
X1A0RAN1 小时前
解决Pycharm中部分文件或文件夹被隐藏不展示问题
ide·python·pycharm
MomentYY1 小时前
第 3 篇:让 Agent 学会分工,LangGraph 构建多 Agent系统
人工智能·python·agent
程序员Jelena1 小时前
Python 代码是什么?—— 从字节到执行的完整解析
python
测试员周周1 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
用户8356290780512 小时前
Python 操作 PowerPoint OLE 对象
后端·python
lolo大魔王2 小时前
Linux 数据文件处理实战:排序、搜索、压缩、归档一站式详解
linux·运维·服务器
小江的记录本2 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
189228048612 小时前
NY382固态MT29F32T08GSLBHL8-24QM:B
大数据·服务器·人工智能·科技·缓存
xhbh6662 小时前
网关端口映射和路由器端口转发有什么区别?配置要点全解析
运维·服务器·网络·智能路由器·端口映射·映射·无痕网关