创建一个私有的、自包含的python环境的最佳方法是什么?

2024-03-28 23:21:22 发布

您现在位置:Python中文网/ 问答频道 /正文

< P>我想创建一个私有的、自包含的Python环境,它不链接到系统库(VielalEnv的方式),还包括Python包的标准C/C++库的版本,这些库只是这些库的包装器(例如PIL和LIJPEG)。

我见过商业应用程序在一个目录中发布整个运行时,所以我知道这是可以做到的。

问题是,有没有一种工具可以让这件事变得简单?Virtualenv几乎把我带到了那里,特别是没有站点包和可重定位标志,但它并不能解决标准“C”库的问题。我希望能够构建一个PIL,例如,它使用libjpeg和libpng的捆绑私有版本

有什么建议吗?


Tags: 工具版本目录应用程序标准pil环境virtualenv
3条回答

我已经成功地使用了py2exe。还有cx_Freeze

有关更多建议,请参见此处:

关于本声明:

that doesn't link back to system libraries

当然,您不能完全消除它需要一些系统库。如果你想要一个Windows应用程序,它必须使用Windows API。我想你不想把整个Windows副本捆绑到你的应用程序中,以防它们没有安装Windows。。。。

尝试使用cx_Freeze或py2exe。它们用于打包Python应用程序以使其可再发行,并包括它所依赖的所有包/库。

听起来,您真正想要的是将特定的python安装和脚本捆绑到一个可分发包中。您可以执行以下操作:

  • 下载、编译python并将其安装到项目目录(即python工具链)
  • 创建一个前缀脚本(toolchain),该脚本将采用相对路径并动态更新PATHPYTHONPATHLD_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 $*
  • 然后,应用程序脚本中的magic cookie可以如下所示:
#!.../install directory/toolchain python

print "Hello World!"
  • 现在您应该能够分发这样的目录:
    • package/
      • python-toolchain/
      • app/

相关问题 更多 >