跳转到主要内容

让您成为便携式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 还有一些修改,使其能够与构建冻结应用程序的其他工具很好地配合使用,例如 eskysignedimp,主要与哪些模块可以作为内置模块使用有关。

参考

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分发

myppy-0.1.0.tar.gz (28.2 kB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面