3

所以你可以使用distutils来创建一个文件,比如

PIL-1.1.6.win32-py2.5.exe

您可以运行并使用它来轻松安装某些东西。但是,安装需要用户输入才能继续(您必须单击“确定”三次)。我想创建一个易于安装的 Windows 版本,您可以将其作为 cmd 行程序运行,不需要用户输入。这可能吗?这些 .exe 文件是否已经这样做了,但是您需要向它们传递一个神奇的 cmd 行参数才能工作?

4

3 回答 3

1

请参阅这篇文章,其中描述了修改存根安装程序的想法,如下所示:

它还提到了另一种选择:使用setup.py bdist_msi代替,这将产生一个 msi 包,可以在无人看管的情况下安装

于 2009-07-24T15:16:46.337 回答
0

在使用简单的批处理文件调用 setuptools 的安装脚本之前,我已经完成了这项工作,并将 egg 文件路径作为参数传递给它。唯一的麻烦是您需要确保脚本在 PATH 中,而它可能不在。

假设 Python 本身在 PATH 中,你可以在你的 egg 分发的 python 脚本中尝试这样的事情(称之为 install.py 或类似的东西)。

import sys
from pkg_resources import load_entry_point

def install_egg(egg_file_path):
    sys.argv[1] = egg_file_path
    easy_install = load_entry_point(
        'setuptools==0.6c9', 
        'console_scripts', 
        'easy_install'
    )
    easy_install()

if __name__ == "__main__":
    install_egg("PIL-1.1.6.win32-py2.5.egg")

本质上,这与“easy_install.py”脚本的作用相同。您正在定位该脚本的入口点,并设置 sys.argv 以便第一个参数指向您的 egg 文件。它应该为您完成其余的工作。

高温高压

于 2009-07-22T18:40:03.473 回答
0

您可以通过运行“setup.py bdist_wininst”来获得可执行文件。您可以通过运行“setup.py bdist_dumb”来获得更简单的东西。这将生成一个 .zip 文件,该文件在安装 Python 的驱动器的根目录下解压缩,前提是它安装在与您构建它的机器相同的目录中,它将安装该库。

现在我不知道Windows下是否有一个解压缩命令行工具可以用来做到这一点;我通常在我所有的 Windows 机器上都安装了 Cygwin,但将它与 .zip 一起发布可能非常简单。

于 2009-07-22T17:10:23.997 回答