Pyinstaller不生成我的文件配置文件

时间:2015-04-03 14:20:42

标签: python pyinstaller configparser

我正在使用Pyinstaller在Mac OS X上制作.app软件包,我的应用程序生成一个config.ini,脚本版本运行完美,但是当它是.app时,它不起作用。 我正在使用ConfigParser进行读写。 我正在使用Pyside进行GUI。 它不会生成我的.ini文件,因此它不会读取或写入。 是的,它是一个动漫通知器,每次都不厌其烦。

代码:

import sys
import urllib2
import ConfigParser
import re
import time
import thread
import atexit
from datetime import date

import lxml.html as lx
from PySide.QtCore import *
from PySide.QtGui import *
from pync import Notifier

def layout_widgets(self, layout):
    return (layout.itemAt(i) for i in range(layout.count()))

def notify(self):
    while True:
        config.read('animeConfig.ini')
        for newAnime in animeNotify.xpath('//*[@id="frontpage_left_col"]//*[@class="blue"]/text()'):    
            if config.has_section(newAnime):
                for newEp in animeNotify.xpath('//*[@id="frontpage_left_col"]//*[text()="'+newAnime+'"]/parent::h2/following-sibling::h3/a/text()'):
                    if not config.has_option(newAnime, newEp):
                        Notifier.notify(newEp+' has been uploaded!', title=newAnime+' '+newEp.lower(), open='http://www.animeseason.com' + 
                        animeNotify.xpath('//*[@id="frontpage_left_col"]//*[text()="'+newEp+'"]/@href')[0])
                        m = re.findall('\d+', newEp)
                        config.set(newAnime, newEp, int(m[0]))
                        with open('animeConfig.ini', 'wb') as configFile:
                            config.write(configFile)
        time.sleep(300)

def checkChecked(self):
    while True:
        config.read('animeConfig.ini')
        for checkbox in self.layout_widgets(self.vLayout):  
            if checkbox.widget().isChecked() and not config.has_section(checkbox.widget().text()):
                config.add_section(checkbox.widget().text())
                for anime in animeList.xpath('//*[@class="series_alpha"]/li/span/preceding-sibling::a/text()'):
                    if config.has_section(anime):
                        self.EUrl = animeList.xpath('//*[@class="series_alpha"]/li/*[text()="'+anime+'"]/@href')[0]
                        self.EUrl = lx.parse(urllib2.urlopen("http://www.animeseason.com" + self.EUrl))
                        for ep in self.EUrl.xpath('//tr/*[@class="text_center"]/a/text()'):
                            config.set(anime, 'episode '+ep, ep)
                        with open('animeConfig.ini', 'wb') as configFile:
                            config.write(configFile)
            elif not checkbox.widget().isChecked() and config.has_section(checkbox.widget().text()):
                config.remove_section(checkbox.widget().text())
                with open('animeConfig.ini', 'wb') as configFile:
                    config.write(configFile)
        time.sleep(300)

我也在使用线程模块,以便它们可以同时运行。 就像这样:

thread.start_new_thread(self.notify, ())
thread.start_new_thread(self.checkChecked, ())

遗漏了GUI部分,因为这不是很有趣,我想。

0 个答案:

没有答案