我有一个使用多个导入的Python脚本(例如gdal,numpy,pygtk)。我希望这个脚本可以在其他PC上运行,而不必说“在使用这个程序之前你必须安装gdal ....”
我所做的是,每当我使用导入的方法时,我右键单击,单击显示定义,然后将所有必要的模块直接复制粘贴到我的脚本中。
这是有效的,但我想知道的是:有更简单或更优雅的方式吗?
由于
答案 0 :(得分:5)
打包应用程序的优先方式是使用setup.py脚本(使用distutils) 看看http://docs.python.org/2/distutils/setupscript.html。
在setup.py
脚本中,您需要提供所有依赖项,当用户安装您的应用程序时(使用python setup.py install
),它将检查依赖项并为您安装。
另外,如果您想发送单个可执行文件,请查看:
在两种情况下都需要具有正确的setup.py
脚本
答案 1 :(得分:2)
您只需将相关的python模块目录复制到源相对路径即可。
然而,主要问题仍然是相同的:每次更新某些内容时,如果没有重要工作,您就无法获得更新和错误修正的好处。这和您当前的方法的一个好处是,您可以锁定行为,以减少在客户端计算机上版本化副作用。
然而,“正确”的方法是将python脚本转换为带有安装脚本的模块,并指定module dependencies via distutils。
如果依赖项不是pure-python,则可能会遇到客户端编译问题,在这种情况下,您可能需要打包预构建的模块分发。
答案 2 :(得分:1)
由于您提到的依赖项不是纯python并且假设您仅在Windows上工作/分发,您可以考虑使用py2exe来创建可执行文件(这样您最终可能会避免人们将python安装为好)。