为多个操作系统打包专有Python库

为多个操作系统打包专有Python库,python,packaging,py2exe,setuptools,distutils,Python,Packaging,Py2exe,Setuptools,Distutils,我正在开发一个专有的Python库。该库目前仅适用于Windows,我还想将其用于其他平台(Linux和Mac) 该库目前以Zip文件的形式发送给(付费)客户。此存档包含用于实现my library的已编译Python代码,以及所有依赖项。通过将Zip文件放在PYTHONPATH上,客户可以从其Python脚本中使用该库 提供包含所有依赖项的Zip文件具有以下优点: 安装库不需要internet访问或管理员权限 客户不必担心安装/管理我的库的依赖项 它还有一个缺点,即客户不能(轻松地)使用自

我正在开发一个专有的Python库。该库目前仅适用于Windows,我还想将其用于其他平台(Linux和Mac)

该库目前以Zip文件的形式发送给(付费)客户。此存档包含用于实现my library的已编译Python代码,以及所有依赖项。通过将Zip文件放在PYTHONPATH上,客户可以从其Python脚本中使用该库

提供包含所有依赖项的Zip文件具有以下优点:

  • 安装库不需要internet访问或管理员权限
  • 客户不必担心安装/管理我的库的依赖项
它还有一个缺点,即客户不能(轻松地)使用自己版本的my library依赖项

即使我没有生成EXE,我也在使用py2exe为我的库获取可分发的Zip文件。这种“黑客”非常方便,因为py2exe允许我简单地说出我需要哪些包,并为我执行所需库的依赖性分析。py2exe自动生成包含我的(已编译)库代码和所有依赖项的Zip文件

不幸的是,py2exe仅适用于Windows。我还需要能够在Linux和Mac上构建它,因此将构建过程更改为不使用py2exe

我的问题是:

  • 在Python社区中,发布一个包含所有依赖项的大型Zip文件被认为是一个坏主意吗?从我所看到的,这似乎是一个不寻常的做法,至少
  • 是否可以使用其他工具(如setuptools)以允许脱机安装而无需管理员权限的形式分发库
  • 我对Python中关于这些问题的最新技术的了解是有限的,因此我非常感谢在这方面有更多经验的人的建议

    一个硬性要求是我只能发布我的库的二进制发行版,因为这是一个专有产品。我研究了Distutils和Setuptools,其中推荐的方法似乎是简单地发送所有源代码


    非常感谢

    您应该查看PyInstaller以获得跨平台的可执行生成器。