Python Distutils Win32版本问题

3

因此,您可以使用Distutils创建文件,例如

PIL-1.1.6.win32-py2.5.exe

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

3个回答

1

请参阅此帖子,其中描述了修改存根安装程序的想法:

它还提到了另一种选择:使用setup.py bdist_msi代替,这将生成一个可以无人值守安装的msi包。


0

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

假设Python本身在PATH中,您可以尝试在一个Python脚本中执行以下操作(将其命名为install.py或其他类似名称),然后与egg一起分发:

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文件。它应该为您完成其余部分。

希望对您有所帮助


0

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

现在我不知道在 Windows 下是否有可以用来执行此操作的解压缩命令行实用程序;我通常在所有 Windows 箱子上都安装了 Cygwin,但只需将其与 .zip 一起发送可能会证明非常简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接