让您成为便携式Python
项目描述
Myppy是一组用于构建和管理便携式Python环境的工具。最终结果是类似于便携式Python的东西,但可以用于各种不同的平台。
目前的目标构建环境是linux-i686和OSX。当我找到如何在win32上构建而不启动Visual Studio的方法时,我将添加它。
秘密配方基本上是
使用autopackage构建工具在Linux上隐藏较新的glibc符号,这样编译的库就可以在旧机器上未修改地使用。
在OSX上设置MACOSX_DEPLOYMENT_TARGET=10.4并构建通用二进制。
将所有共享库的rpath或loader_path设置为合理值,这样无论myppy环境位于何处都可以找到它们的依赖项。
一些事情还没有完全解决
easy_install和pip安装的脚本将解释器的绝对路径嵌入到shebang行中;它们应该被替换为在运行时找到python的加载器占位符。
distutils和sysconfig将构建时的绝对库路径嵌入,这意味着如果你移动环境,就无法正确构建C扩展。它们应该像virtualenv一样进行修补。
构建myppy环境
要构建myppy环境,你需要一些基本的命令行构建工具和一个较新版本的gcc。使用以下命令初始化新的myppy环境
#> myppy PATH/TO/ENV init
这将构建和设置一个基本的Python安装(目前为python 2.6.6)以及setuptools和pip。大多数Python包可以直接使用pip安装。对于具有更复杂需求的包,提供了一个myppy“配方”,你可以使用例如
#> myppy PATH/TO/ENV install py_wxpython
这将构建并安装一个定制的wxPython版本,该版本经过修补以更便携。
使用myppy环境
在myppy环境的顶层有三个shell脚本,分别命名为“python”、“myppy”和“shell”。这些脚本设置了一些相关的环境变量,然后加载适当的命令。
在这里,您可能会了解到如何在 myppy 环境中获取 shell,然后使用 pip 安装第三方包。
#> #> PATH/TO/ENV/shell myppy(ENV):$ myppy(ENV):$ pip install esky ...lots of output as esky is installed... myppy(ENV):$ myppy(ENV):$ <ctrl-D> #>
它有什么用呢?
嗯,就像便携式 Python(http://www.portablepython.com/)一样好的所有用途,但是在 Linux 或 OSX 上而不是 Windows 上!将其用作方便的便携式脚本或测试环境,或者用于并行运行多个 Python 版本。
它特别擅长的一项(实际上,这也是它被创建的原因)是构建冻结的 Python 应用程序。Myppy 内置了对 cx-freeze 和 py2app 的修改食谱,可以构建具有与 myppy 环境本身相同便携性的独立应用程序 - 意味着它们应该在从古老的 Red Hat 发行版到最新的 Ubuntu 版本上都能运行。
Myppy 还有一些修改,使其能够与构建冻结应用程序的其他工具很好地配合使用,例如 esky 和 signedimp,主要与哪些模块可以作为内置模块使用有关。
参考
项目详情
myppy-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6b98a0b91f21cb088c9828fe94abb005860417e2548703d460417fc6201e7ea2 |
|
MD5 | ccb9a3a8c3a262495ebf6c7847267831 |
|
BLAKE2b-256 | 430897f79a02533bb869888ee044c09c80820b4ca4af870284376d680dabcfdc |