将Python包转换为单个脚本
项目描述
可以使用 Stickytape 将 Python 脚本及其依赖的任何 Python 模块转换为单个文件 Python 脚本。
由于这依赖于正确分析您的脚本和任何依赖的模块,因此在所有情况下可能无法正常工作。我很久以前为了一个特定的用例拼凑了这段代码,因此许多正常的 Python 导入用法没有得到适当支持。如果您需要从您的 Python 脚本创建独立的可执行文件,我建议使用 PyInstaller 等替代方案。
安装
pip install stickytape
用法
您可以使用 --add-python-path 参数告诉 stickytape 要搜索的目录。例如
stickytape scripts/blah --add-python-path . > /tmp/blah-standalone
或者直接输出到文件
stickytape scripts/blah --add-python-path . --output-file /tmp/blah-standalone
您还可以指定 stickytape 应该使用的 Python 可执行文件,例如虚拟环境中的 Python 可执行文件
stickytape scripts/blah --python-binary _virtualenv/bin/python --output-file /tmp/blah-standalone
stickytape 无法自动检测动态导入,但您可以使用 --add-python-module 显式包含模块
stickytape scripts/blah --add-python-module blah.util
默认情况下,stickytape 将忽略脚本中的 shebang 并在输出文件中使用 "#!/usr/bin/env python"。要复制原始脚本中的 shebang,请使用 --copy-shebang
stickytape scripts/blah --copy-shebang --output-file /tmp/blah-standalone
正如您所期望的,对于会篡改源文件的程序,有一些注意事项
由于 stickytape 生成输出文件的方式,您的脚本源文件应使用 UTF-8 编码。如果您的脚本在其前两行未声明编码,则从 Python 3 开始默认为 UTF-8。
您的脚本不应有任何 from __future__ 导入。
依赖于特定文件位置的任何内容都可能不再工作。换句话说,__file__可能并不是非常有用。
未导入的文件将不会被包含。可能成为您项目一部分的静态数据,例如其他文本文件或图像,将不会被包含。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分布
构建分布
stickytape-0.2.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9bbdd5dabed633ffde36bb7f656ee0cb55aeae9f87d9c95e377a06bf1ba7df8d |
|
MD5 | 8706b5b14eb8aefae22ffaa6a2e53a37 |
|
BLAKE2b-256 | 618c59e35d7b75129ad81544c40922b13a9cfff111b67a4e01829044e1080dad |
stickytape-0.2.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66046dedac42484a352d87c12bc4272e4e222260a41f6e1fcbb29876c018e543 |
|
MD5 | 7e88011ebf7d5c4755ee3aec54710417 |
|
BLAKE2b-256 | 1820d44f0e1acbabcd805e3165d143a37cfd575793082635f62a2180524be180 |