从pip下载包以供脱机使用。
pip-downloader的Python项目详细描述
PIP下载程序
pip-downloader有助于允许离线安装python包。
- {tt2}$已经存在,它做了类似的事情:
- pro:以同样的方式处理依赖项解析pip install这样就不会混淆了
- pro:下载所有带有--no-binary :all:参数的源包是很有用的。
- 问题:每个软件包仅下载一个文件(即,仅下载源文件或一个控制盘文件)
- con:对于下载不同系统(不是从运行它的系统)而言,它需要
- 包及其所有依赖项具有相似的轮子(例如:ifcp36m-manylinux 是一个库的控制盘,它的所有依赖项也应该有那个控制盘)
- pip-downloader旨在解决相同的问题,但方式略有不同:
- 它使用与pip download相同的依赖项解析,但在解析依赖项之后
- 它会下载该软件包版本的所有可用文件(源文件和所有控制盘文件)
这提供了一种更符合pip在线安装的体验。 要安装的所有文件(所有控制盘和源)。
安装
建议在使用pip下载程序时使用pip的最新版本(当前为-19.1)。
pip install pip-downloader
用法
命令行实用程序pip downloader应该可用。
# To get help about pip-downloader pip-downloader --help # To fetch the list of packages and their versions that downloader will download (dry-run) pip-downloader list flask # To download the list of packages and their versions to the provided destination pip-downloader download flask --dest /tmp/pypi
已知限制
- Dependencies mentioned in setup_requires are not downloaded as pip’s dependency resolution mechanism does not consider them at the moment. Common setup-time requirements are: setuptools_scm, vcversioner, numpy, etc.
- Build dependencies mentioned in pyproject.toml are not downlaoded as pip’s dependency manages install/run-time dependencies at the moment. (These are needed only if source installation is chosen when installing a package.)
- When solving for packages with sys_platform environment markers, the package resolution will happen based on the machine you’re running pip-downloader from. Need to investigate on how to resolve this issue.