如何分发自定义Python脚本,包括依赖项和其他资源?
我的项目包括:如何分发自定义Python脚本,包括依赖项和其他资源?,python,package,distutils,software-distribution,python-wheel,Python,Package,Distutils,Software Distribution,Python Wheel,我的项目包括: 我自己的自定义Python文件 生成的特定于包的唯一Python代码 资源(例如二进制文件) 对第三方模块的依赖性(例如numpy) 生成的Python代码使事情变得棘手,并将此用例与每个人都获得相同代码的典型Python包分开。我可以创建几个包,分发给不同的客户端。每个包将有不同/唯一的生成Python代码,但使用相同版本的自定义Python脚本和第三方依赖项。例如,我可以创建一个“package builder”脚本,它生成唯一的Python代码,并根据生成器参数将依赖项
- 我自己的自定义Python文件
- 生成的特定于包的唯一Python代码
- 资源(例如二进制文件)
- 对第三方模块的依赖性(例如numpy)
如果我用了错误的方法,我将非常感谢您的建议。您是否考虑过使用标准分发方法(即setuptools、distutils)?为什么您不能在setup.py脚本中使用声明依赖项的标准方法?您尝试过吗?@BrendanAbel虽然我可以使用setuptools声明我的依赖项(例如,
install\u requires=['numpy']
),但我还没有找到包含依赖项文件本身的方法。接收包的客户端将无法下载和安装依赖项;我也需要提供它们@吉米:我没有试过;我要试一试。谢谢您是否尝试过类似于适用于Mac OS的py2app或适用于Windows的py2exe?最后一个很酷,因为它允许使用生成的.exe文件从命令行执行。您还可以使用Cython将脚本转换为C,然后作为一个几乎没有依赖项的独立工具进行编译。您是否考虑过使用标准分发方法(即setuptools、distutils)?为什么您不能在setup.py脚本中使用声明依赖项的标准方法?您尝试过吗?@BrendanAbel虽然我可以使用setuptools声明我的依赖项(例如,install\u requires=['numpy']
),但我还没有找到包含依赖项文件本身的方法。接收包的客户端将无法下载和安装依赖项;我也需要提供它们@吉米:我没有试过;我要试一试。谢谢您是否尝试过类似于适用于Mac OS的py2app或适用于Windows的py2exe?最后一个很酷,因为它允许使用生成的.exe文件从命令行执行。您还可以使用Cython将脚本转换为C,然后作为一个几乎没有依赖项的独立工具进行编译。