我想创建一个私有的,自包含的Python环境,它不会链接回系统库(virtualenv的方式),还包括自己的Python包标准C / C ++库版本,它们只是包装器这些库(例如PIL和libjpeg)。
我见过商业应用程序将整个运行时分发到一个目录中,所以我知道它可以完成。
问题是,是否有一种工具可以让这很容易? Virtualenv几乎让我在那里,尤其是。使用--no-site-packages和--relocatable标志,但它没有解决标准“C”库的问题。我希望能够构建一个PIL,例如,使用捆绑的私有版本的libjpeg和libpng
有什么建议吗?
答案 0 :(得分:5)
听起来你真正想要的是将特定python安装和脚本捆绑到可分发包中的方法。您可以执行以下操作:
PATH
,PYTHONPATH
,LD_LIBRARY_PATH
。#!/bin/sh # If your clever you can determine install directory dynamically prefix='install directory' toolchain=$prefix/python-toolchain export PATH=$toolchain/bin:$prefix/app/bin:$PATH export LD_LIBRARY_PATH=$toolchain/lib:$LD_LIBRARY_PATH export PYTHONPATH=$prefix/app/lib:$PYTHONPATH exec $*
#!.../install directory/toolchain python print "Hello World!"
package/
python-toolchain/
app/
答案 1 :(得分:1)
尝试使用cx_Freeze或py2exe。它们用于打包Python应用程序以使它们可再发行,并包含它依赖的所有包/库。
答案 2 :(得分:1)
另见此处以获取更多建议:
关于这句话:
没有链接回系统库
你当然不能完全消除它需要一些系统库。如果您需要Windows应用程序,则必须使用Windows API。我假设您不希望将Windows的整个副本与您的应用程序捆绑在一起,以防他们没有安装Windows ....