pypi本地源的搭建

本文介绍了如何在本地搭建pypimirror服务器,包括安装、配置、使用及整合Apache等步骤,实现离线访问Python包。
部署运行你感兴趣的模型镜像

 

原文链接:http://www.lnmpy.com/pypi-mirror/

 

介于Python的跨平台性,所以这里就不描述我本地的环境了

首先安装pypimirror

 
  1. pip install z3c.pypimirror

安装的过程中会会出现BeautifulSoup版本不匹配的报错

 
  1. Downloading/unpacking BeautifulSoup<=3.0.9999 (from z3c.pypimirror)
  2. Could not find a version that satisfies the requirement BeautifulSoup<=3.0.9999 (from z3c.pypimirror) (from versions: 3.2.0, 3.2.1)
  3. Cleaning up...
  4. No distributions matching the version for BeautifulSoup<=3.0.9999 (from z3c.pypimirror)
  5. Storing debug log for failure in /home/topgear/.pip/pip.log

/usr/local/lib/python2.7/dist-packages/z3c.pypimirror-1.0.16-py2.7.egg/EGG-INFO/requires.txt文件修改一下即可. (这里我是ubuntu的,具体的发行版的配置可能会不一样)

其中有一行是: BeautifulSoup<=3.0.9999, 将版本号去掉,即改成:BeautifulSoup. 改完之后再重新执行上面的安装命令即可.

配置pypimirror.cfg文件,保存路径无所谓

 
  1. [DEFAULT]
  2. # 镜像文件的本地存放路径
  3. mirror_file_path = /opt/pypi/
  4.  
  5. # 远程镜像的url
  6. base_url = http://0.0.0.0/pypi
  7.  
  8. # 日志文件
  9. log_filename = /var/log/pypi-mirror.log
  10.  
  11. # 防止重复运行的锁文件
  12. lock_file_name = /tmp/pypi-mirror.lock
  13.  
  14. # days to fetch in past on update
  15. fetch_since_days = 1
  16.  
  17. # 需要进行镜像拷贝的文件类型,不在列表中的则不进行拷贝
  18. filename_matches =
  19. *.zip
  20. *.tgz
  21. *.egg
  22. *.tar.gz
  23. *.tar.bz2
  24.  
  25. # 需要进行镜像拷贝的文件名称,不在列表中的则不进行拷贝
  26. # 默认拷贝全部,上面已经删选了类型
  27. package_matches =
  28. *
  29.  
  30. # 删除本地有而服务器上没有的包
  31. # 默认是True,会进行删除的,此处我调整为False
  32. cleanup = False
  33.  
  34. # 创建索引文件
  35. create_indexes = True
  36.  
  37. # 显示相信信息
  38. verbose = True

执行pypimirror -h 可以看到pypimirror的帮助信息

-I: 初始化镜像

-U: 更新镜像(当已经初始化过了,只需要进行同步的更新)

-i: 为本地文件创建索引

-c: 同时输出到console中

-v: 显示详细信息

 
  1. pypimirror -c -v -I pypimirror.cfg # 第一次需要初始化
  2. pypimirror -c -v -U pypimirror.cfg # 如果已经存在本地镜像了则可以进行更新
 
  1. pypimirror -c -v -i pypimirror.cfg

其实就是简单的执行一个软链接而已

 
  1. ln -sf /opt/pypi /var/www/pypi

使用镜像源很简单,用-i指定就行了:

 
  1. easy_install -i http://127.0.0.1/pypi/ django
  2. pip install -i http://127.0.0.1/pypi/ django

当然实际中你会发现有些源即使你指定了第三方的源(本地源), 它竟然还是从官方的源去下载了, so(= ̄ω ̄=), 改下pip或者easy_install的源码,替换掉代码中hardcode的官方源吧.

  1. 搭建本地pypi服务器
  2. Setting up a PyPI mirror

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 使用Devpi设置PyPI私有仓库镜像或缓存服务器 #### 启动Devpi服务 为了快速启动并配置一个可用的 Devpi 服务,可以通过 Docker 容器来实现。命令如下所示: ```bash docker run -d -p 3141:3141 -v /docker/devpi:/devpi devpi[^1] ``` 这条指令将会创建一个新的容器实例,并将其端口映射至主机上的 `3141` 端口,同时挂载本地目录 `/docker/devpi` 到容器内的相应位置用于持久化存储。 #### 初始化与登录 首次访问新建立的服务时,需通过浏览器或其他 HTTP 工具连接到 http://localhost:3141 来完成初始化过程。这一步骤通常涉及创建管理员账户和其他必要的初始设定。之后可利用客户端工具如 `devpi-client` 登录此服务器: ```bash devpi use http://<your_server_ip>:3141 devpi login root --password='' ``` 这里假设使用默认密码为空字符串的情况;实际环境中应当更改这一设置以增强安全性[^2]。 #### 配置索引作为缓存层 为了让 Devpi 成功扮演 PyPI 的代理角色,在已有的用户下定义新的索引来充当公共 PyPI 上游资源的缓存节点是非常重要的操作之一。具体做法是在终端执行下面这段脚本: ```bash devpi index -c public bases=root/pypi type=mirror mirror_url=https://pypi.org/simple/ ``` 上述命令建立了名为 "public" 的索引,其基础设为官方 PyPI 并指定类型为镜像模式(`type=mirror`),从而使得所有对该索引发起的请求都会被转发给上游的真实 PyPI 库进行处理,与此同时任何成功获取的数据都将自动保存于本地副本之中以便后续更快捷地响应相同查询[^4]。 #### 设置pip指向自建源 最后一步是要让项目的虚拟环境中的 pip 命令能够识别这个新建好的私有仓库地址。可以在 `.pip/pip.conf` 文件里加入以下内容: ```ini [global] index-url = http://<your_server_ip>:3141/root/public/+simple/ trusted-host=<your_server_ip> ``` 这样就完成了整个流程,现在所有的 Python 包依赖关系解析都会优先尝试从内部网络里的 Devpi 实例中检索所需文件,只有当找不到对应版本号的时候才会去外部互联网上寻找补充[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值