python - 离线 python 打包,将所有必需的包放在单个 tar 或类似轮子的 java fat jar 中

标签 python python-3.x openstack packaging swagger-codegen

我想生成 python tar 或wheel 文件,其中包含所有包(依赖项)以及多个依赖项目模块。

我有一个cliff基于 CLI 模块,我们有多个基于 python 的 Swagger SDK。

我想用这个构建一个包,它将通过简单的 pip install build_package.zip 命令离线安装(无需互联网)。

最佳答案

您可能必须为每个项目(即每个依赖项)构建一个轮子。 然后,按照依赖顺序安装它们(直接安装轮子看this SO question)。

如果您想将所有内容放在同一个存档中,您只需将所有轮子都压缩即可。首先解压缩它们,最后,一一安装每个轮子(您可以将所有内容嵌入自解压存档中,例如 there )。

<小时/>

另一种更贪婪的方法是压缩站点包中的所有内容。它位于您安装的 python bin 附近(即 python 2.7 中名为 venv 的 virtualenv 的 venv/lib/python2.7/site-packages)。然后,您只需解压目标计算机的 site-packages 中的所有内容即可。

但是,请注意,这假设您用于压缩的计算机目标计算机具有相同的体系结构,并且运行相同版本的 python... 此外,您在归档时必须小心,因为您可能有不需要的额外依赖项(例如,如果您安装了其他软件包)。

<小时/>

最后一点,我想您已经考虑过这个选项,但是,我建议您重新考虑。在版本处理方面,允许在线安装项目实际上不那么麻烦(即通过手动执行所有这些操作,您将失去版本管理:pip install --upgrade ...) .

关于python - 离线 python 打包,将所有必需的包放在单个 tar 或类似轮子的 java fat jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116645/

相关文章:

python - 从字典中提取键作为平面列表

python - 没有 'pkg_resources' 的入口 pip 和控制台脚本?

python - 在Python中,根据转移概率为TSP生成随机路径

python - 如何处理 ImportError : cannot import name 'pytree' from 'jaxlib' of using jax?

python - 将代码写入文件,然后执行

python - 如何获取带有特定标签的 RackSpace 服务器?

python-3.x - PngImageFile 类型的对象不可 JSON 序列化

python - 使用 Tensorflow 2.0 进行逻辑回归?

centos - 由于 PyYAML,DevStack 安装失败

centos - Openfire - 设置管理 GUI 监听端口 80