我想创建一个私有(private)的、自包含的 Python 环境,它不链接回系统库(virtualenv 的方式),并且还包括它自己的 Python 包标准 C/C++ 库版本,这些包只是用于这些库(例如 PIL 和 libjpeg)。
我见过将整个运行时分布在一个目录中的商业应用程序,所以我知道这是可以做到的。
问题是,有没有一种工具可以让这件事变得简单? Virtualenv 几乎可以让我到达那里,尤其是。使用 --no-site-packages 和 --relocatable 标志,但它不能解决标准“C”库的问题。例如,我希望能够构建一个 PIL,它使用捆绑的私有(private)版本的 libjpeg 和 libpng
有什么建议吗?
最佳答案
听起来您真正追求的是一种将特定 python 安装和脚本捆绑到可分发包中的方法。您可以执行以下操作:
- 下载、编译并安装python到项目目录(即python-toolchain)
- 创建一个前缀脚本 (toolchain),它将采用相对路径并更新
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 $*
- 您的应用脚本中的魔法 cookie 可能如下所示:
#!.../install directory/toolchain python print "Hello World!"
- 您现在应该可以像这样分发目录了:
包/
python-toolchain/
app/
关于python - 制作私有(private)的、自包含的 python 环境的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4623008/