【发布时间】:2014-07-31 08:37:40
【问题描述】:
我目前正在用 Python 编写一个命令行应用程序,它需要以易于下载和运行的方式提供给最终用户。对于那些在 Windows 上可能没有安装 Python (2.7) 的人,我打算使用PyInstaller 来生成一个独立的 Windows 可执行文件。然后,用户将能够简单地下载“myapp.exe”并运行myapp.exe [ARGUMENTS]。
我还想为已经安装了 Python 的用户(在各种平台上)提供一个(较小的)下载。一种选择是将我的所有代码放入一个 .py 文件“myapp.py”(以#! /usr/bin/env python 开头),并使其可用。这可以下载,然后使用myapp.py [ARGUMENTS] 或python myapp.py [ARGUMENTS] 运行。但是,将我的应用程序限制为单个 .py 文件有几个缺点,包括限制我组织代码的能力以及难以使用第三方依赖项。
相反,我想分发我自己代码的几个文件的内容,以及一些(纯 Python)依赖项。是否有任何工具可以将所有这些打包到一个文件中,可以使用现有的 Python 安装轻松下载和运行?
编辑:请注意,我需要这些应用程序便于最终用户运行。他们不太可能安装pip,也不太可能安装 Python 核心之外的任何其他东西。使用 PyInstaller,我可以生成一个文件,这些用户可以从网上下载并使用一个命令运行(或者,如果没有参数,只需双击)。有没有办法在不使用 PyInstaller 的情况下实现这种易用性(即无需冗余捆绑 Python 运行时)?
【问题讨论】:
-
对于第二种(小)解决方案,为什么不使用 pip?
-
你有非常相似的问题here about Windows和here in general
-
你提到了各种平台,但没有提到它们是什么。 “sudo apt-get install package”对您的最终用户来说足够简单吗?
-
“是否有任何工具可以将所有这些打包到一个文件中,可以使用现有的 Python 安装轻松下载和运行?” - 获取资源并压缩它们。您将获得一个可以轻松下载并在任何现有兼容 Python 安装中运行的文件。 :)
-
@snapshoe:假设最终用户安装了 Python(可能是系统自带的,也可能是他们自己安装的),并且他们有足够的信心从命令行运行
python myapp.py [ARGUMENTS]。在环境方面,我正在寻找一种方法来运行一组 Python 文件(我自己的和第三方的依赖项),就像所有文件都被连接成一个巨大的脚本一样容易。如果一个系统可以运行后者,我希望它能够运行前者。
标签: python packaging software-distribution