2015-05-30 1 views
2

Я использовал эту конфигурацию compile.py довольно много раз с большим успехом. Я только что обнаружил после обновления приложения, что он отлично работает внутри python. Когда я заморожу его, он не будет работать правильно и не выдаст никаких ошибок?Python 3 cx_freeze Win34GUI issue

Вот мой код компиляции:

from cx_Freeze import setup, Executable 
import sys 

base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 
setup(name = "MYAPP" , 
     version = "0.1" , 
     description = "MYAPP" , 
     executables = [Executable("MYAPP.py", 
           icon = "s.ico", 
           base = base)] ,) 

Когда я удалить основание = базовую линию, то .exe запускается с выходным окном, и приложение работает правильно. Если я установил base = base, чтобы удалить окно вывода, приложение не будет работать правильно?

Я считаю, что код проблемы должен быть функцией reporthook для urllib.request.urlretrieve, поскольку он не начинал делать это, пока я не попытался интегрировать этот прогресс. Это часть цикла for, который запускается для каждого файла, который я пытаюсь загрузить. Он загрузит 1-й файл, а затем остановится после того, как он достигнет 100%, только если я установил base = base в файле compile.py ...

Я потерян.

Спасибо за помощь!

def reporthook(blocknum, blocksize, totalsize): 
    percent = 0 
    readsofar = blocknum * blocksize 
    if totalsize > 0: 
     percent = readsofar * 1e2/totalsize 
     if percent >= 100: 
      percent = 100 

     s = "\r%5.1f%% %*d/%d" % (
      percent, len(str(totalsize)), readsofar, totalsize) 

     self.time['text'] = 'Downloading File: '+self.fn+'' + s 

     if readsofar >= totalsize: # near the end 
      sys.stderr.write("\n") 
    else: # total size is unknown 
     sys.stderr.write("read %d\n" % (readsofar,)) 

    #UPDATE PROGRESSBAR 
    self.pb.config(mode="determinate") 
    if percent > 0: 
     self.dl_p = round(percent,0) 
     self.pb['value'] = self.dl_p 
     self.pb.update() 
    if percent > 100: 
     self.pb['value'] = 0 
     self.pb.update() 

urllib.request.urlretrieve(imgs, fileSavePath, reporthook) 
+0

Достойный вопрос, но есть что-то, что происходит с форматированием вашего кода. Можете ли вы удалить пробелы между backticks, пожалуйста? Более читаемый вопрос, скорее всего, приведет к большему количеству ответов. – ShellFish

+0

Извините, новый на сайте. Надо привыкнуть к редактору. – rankind

+0

Нет проблем, просто пытаюсь помочь. Но один из лучших первых вопросов, которые я видел в течение длительного времени, следовательно, другие люди, я даю вам upvotes :) Продолжайте работать! – ShellFish

ответ

0

Thomas K - Это было решением проблемы.

«Если вы затормозите его базой графического интерфейса, поэтому при его запуске нет командной строки, вам не следует писать в sys.stdout или sys.stderr вообще. Они предназначены для командной строки, поэтому если у вас нет командной строки, они не будут работать. - Thomas K 11 часов назад »

Спасибо!

 Смежные вопросы

  • Нет связанных вопросов^_^