首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安装向导类似于Python中的脚本

安装向导类似于Python中的脚本
EN

Stack Overflow用户
提问于 2013-03-24 17:46:13
回答 1查看 2.2K关注 0票数 4

我正在编写一个简单的安装向导,就像Python中的脚本。基本上,它会提示用户输入一些值,并回答一些是/否问题。根据用户输入,脚本将生成目录、创建和初始化配置文件、创建符号链接、设置权限等等。

由于用户选择不同的路径,目录的结构和符号链接的存在可能不同。每个步骤都可能会出现许多问题,可能需要用户更改输入或回滚整个过程。

1 -Is --这是编写这个脚本的最佳方法吗?这个文本菜单设置向导是一个好主意吗?

有什么模块可以帮助我简化程序,这样我就不会重新发明轮子了吗?

当用户做出选择时,我应该实际地执行每一步吗?还是等待到结束时立即完成所有的操作?

记住已经创建的结构,以便编写回滚函数的最佳方式是什么?

我不希望任何代码作为答案,任何建议、意见或外部链接都会受到欢迎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-24 17:58:07

我不做GUI的事。您可以编写一个,但是假设您完全是在命令行中完成的。

  1. 我建议在做物理副作用之前,接受所有用户的输入。换句话说,在用户完成所有选项之前,不要开始创建目录。Python文档工具Sphinx是一个很好的例子。当用户启动quickstart时,它会问用户许多问题。Sphinx直到结束才生成物理目录和配置文件。这就消除了“记住”的需要是累人的。树枝太多了。别干那事。在最后完成整个设置。
  2. 视情况而定。如果您想要创建一个简单的命令行接口,Python可以使用argpase来生成命令行选项。使用构建在top解析之上的多多普库实现了上述功能。但是,如果您想拥有命令行,这是很有用的。如果您的脚本只需要调用"python script.py“,然后开始询问用户问题,我就不知道有什么有用的库可以处理安装内容。

实际上,我正在开发一个名为dcoprompt的程序,但它还没有完成。https://bitbucket.org/yeukhon/docprompt基本上应该允许你写下你的设置提示,然后记住它们。代码库很糟糕,效率不高。你可以试一试,但由于这学期作业繁重,我要到夏天才能完成这个功能。

所以答案是否定的。你必须自己写代码。只是有很多原始输入和很多变量。

  1. 再一次,等到最后才能产生副作用。
  2. 再一次,等到最后才能产生副作用。

编辑

假设您一直等到创建目录和符号链接的结束,并且在发生IOError的步骤之一时,您希望撤消整个设置。如果您正在创建的只是目录、文件和符号链接,请将它们添加到列表字典中。看我的编辑。

代码语言:javascript
运行
复制
def physical_setup(...):
    memory = {
        'dirs': [],
        'symlinks': [],
        'files': []
    }
    try:
        # start doing physical setup
        memory['dirs'].append('/tmp/dir1')        
        os.path.mkdir('/tmp/dir1')

    # catching all exceptions is considered a bad practice but sometimes be a little badass
    except Exception as e:
        for key, valist in memory.iteritems():
            if key == 'dirs':
                for dir in valist:
                    shutil.rmtree(dir)

重要:上面的代码有一个问题,您应该在删除文件夹之前取消链接、删除文件和目录。因为如果文件是已经删除的目录的一部分,您将不得不悄悄地捕获异常。很多密码。只是取消链接,删除文件和dir。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15601870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档