You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动下载PyPI前50个Python包并在venv环境部署含源码及依赖?

实践方案:自动获取PyPI Top50包并完成环境部署与源码下载

一、先拿到PyPI排名前50的包列表

PyPI官方提供了流行包的API接口,直接写个简单脚本就能拿到前50个包名:

import requests

# 调用PyPI流行包接口
resp = requests.get("https://pypi.org/popular/json")
top50_pkgs = [pkg["name"] for pkg in resp.json()["packages"][:50]]
# 把包名存到文件,后续操作更方便
with open("top50_packages.txt", "w") as f:
    f.write("\n".join(top50_pkgs))

运行这个脚本就能生成包含前50包名的文本文件。

二、虚拟环境创建与包安装

用conda的方式

  1. 创建新环境(指定Python版本,比如3.10):
    conda create -n pypi_top50 python=3.10 -y
  2. 激活环境:
    conda activate pypi_top50
  3. 批量安装包:
    pip install -r top50_packages.txt

用venv的方式

  1. 创建venv环境:
    python -m venv pypi_top50_env
  2. 激活环境:
    • Windows:pypi_top50_env\Scripts\activate
    • Linux/macOS:source pypi_top50_env/bin/activate
  3. 同样批量安装:
    pip install -r top50_packages.txt

三、下载所有包及依赖的源码

pip自带的download命令就能搞定,加上--no-binary :all:参数会强制下载源码包,而不是二进制wheel:

  1. 直接基于top50包列表下载(包含所有依赖):
    pip download -d ./package_sources -r top50_packages.txt --no-binary :all:
    执行后所有源码包会存到package_sources目录里。

如果已经安装完包,想下载当前环境所有已安装包的源码,可以先导出完整包列表:

# 导出环境内所有已安装包(含依赖)
pip freeze > all_installed.txt
# 下载所有源码
pip download -d ./all_sources -r all_installed.txt --no-binary :all:

四、踩坑提醒

  • 版本冲突:Top50包可能存在依赖版本互斥的情况,安装时如果报错,可以试试加--use-deprecated=legacy-resolver参数让pip用旧的依赖解析逻辑,或者手动调整部分包的版本。
  • 网络限速:国内访问PyPI慢的话,加个国内镜像源,比如-i https://pypi.tuna.tsinghua.edu.cn/simple,安装和下载源码都能用。
  • 磁盘空间:50个包加所有依赖的源码大概会占几百MB到几个G,提前留好空间。
  • 权限问题:全程用虚拟环境操作,别碰系统级Python,避免权限报错和污染全局环境。

内容的提问来源于stack exchange,提问作者Exploring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:11:13