Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何分发自定义Python脚本,包括依赖项和其他资源?_Python_Package_Distutils_Software Distribution_Python Wheel - Fatal编程技术网

如何分发自定义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)
生成的Python代码使事情变得棘手,并将此用例与每个人都获得相同代码的典型Python包分开。我可以创建几个包,分发给不同的客户端。每个包将有不同/唯一的生成Python代码,但使用相同版本的自定义Python脚本和第三方依赖项。例如,我可以创建一个“package builder”脚本,它生成唯一的Python代码,并根据生成器参数将依赖项捆绑在一起

我想分发我的Python脚本,包括资源和依赖项。此软件包的接收者无法使用requirements.txt和pip下载第三方依赖项;此包中必须包含所有依赖项和二进制文件

我设想客户机使用这个包的方式是,他们只需解压缩我提供的归档文件,将他们的PYTHONPATH设置为解压缩目录,然后调用我的自定义Python文件来启动这个过程


如果我用了错误的方法,我将非常感谢您的建议。

您是否考虑过使用标准分发方法(即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,然后作为一个几乎没有依赖项的独立工具进行编译。