zoukankan      html  css  js  c++  java
  • pyinstaller又踩一坑, configparser os.mknod

    在使用pyinstaller时,有使用configparser模块。

    使用相对路径。在pycharm中测试,正常,打包成exe,就出错了

    换用绝对路径,

    print(os.getcwd())
    fp_dir=os.getcwd()
    print(fp_dir)
    fp = fp_dir + 'conf.ini'  # 定义配置文件名
    print(fp)

    基本正常。

    可是遇到了

    conf.read(fp)  # 打开conf
        conf.add_section('conf')  # 添加conf节点

    不能自动创建文件

    尝试os.mknod,windows下根本不支持。

        tes = open(fp,'a')
        tes.close()

    用open方法,终于调试成功。

    完整代码:

    def make_conf():
        print('make')
        conf = ConfigParser()  # 实例化
        print('没有配置文件,创建中')
        tes = open(fp, 'a')
        tes.close()
        firefox = str(get_extension(['firefox.exe']))
        geckodriver = str(get_extension(['geckodriver.exe']))
        WeChat = str(get_extension(['WeChat.exe']))
        conf.read(fp)  # 打开conf
        if type!='up':
            conf.add_section('conf')  # 添加conf节点
        print('add section')
        conf.set('conf', 'firefox', firefox)  # 添加值
        conf.set('conf', 'geckodriver', geckodriver)  # 添加值
        conf.set('conf', 'wechat', WeChat)  # 添加值
        # conf.set('conf', 'firefox', '')  # 添加值
        # conf.set('conf', 'geckodriver', '')  # 添加值
        # conf.set('conf', 'wechat', '')  # 添加值
        print('set all', fp)
        with open(fp, 'w') as fw:  # 循环写入
            conf.write(fw)
        return True
  • 相关阅读:
    js递归函数和call()
    前端常用
    整理项目中用到的angularjs及其他js代码
    体验设计真的是让一切简单到极致吗?
    iview table中利用render动态循环输出
    Vue+iview在render函数中添加Poptip提示操作
    jQuery
    外部js调用vue实例方法
    es6 filter() 数组过滤方法总结
    vue通信、传值的多种方式
  • 原文地址:https://www.cnblogs.com/jackadam/p/8308342.html
Copyright © 2011-2022 走看看