Уведомления

Группа в Telegram: @pythonsu

#1 Май 25, 2013 02:32:18

vshnukrshna
Зарегистрирован: 2013-05-25
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

Здравствуйте.
Всего несколько часов изучаю Python и вообще программирование, поэтому не судите строго за ламерский вопрос..
Итак, я хочу при двойном щелчке на файл .py получать окошко ‘hello world!’.
На данный момент сделал GUI в Qt 4.8.4 на Python 3.3. Это окошко я могу запускать из командной строки и все работает как надо, но хотелось бы запускать простым двойным щелчком.
Я так понимаю, что когда я щелкаю по .py-файлу вылетает cmd, сама программа мгновенно исполняется и все закрывается. Так вот есть-ли способ остановить это мгновенное выполнение? Я знаю, что обычно ставится строка input(), но я ее тыкаю в разные места исходного кода и никакого эффекта не наблюдается. К тому же, такой вариант не слишком изящный. Я хочу чтоб, программа и cmd закрывались по нажатию крестика на окошке.

Офлайн

#2 Май 25, 2013 06:06:31

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

Целых ПАРУ часов изучаете Python и уже за GUI взялись? ну гений, что тут сказать.

Python программы принято запускать из cmd, если хотите в windows по двойному щелчку, то делайте. ЧТо касается GUI - называйте исполняемый файл с расширением *.pyw и привязывайте его в Windows на исполнение через pythonw.exe.
Консольных програм это не касатеся, а то что вы хотите - ну это милион милионов раз обсуждалось на каждом первом форуме по программированию на python. Дружите чаще с Гуглом, он действительно много знает.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Май 25, 2013 07:37:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

У вас похоже пробел не в питоне а в знаниях об операционной системе.

vshnukrshna
но хотелось бы запускать простым двойным щелчком.
Я так понимаю консоль у вас открывается, значит и программа запускается. Этот вопрос снят. А так windows решает что делать с файлом по его расширению. По умолчанию установщик питона делает ассоциацию на python.exe файлов *.py *.pyw. Если что-то сломалось по правой кнопке отредактируйте свойства - раздел тип файла - и выберете правильно приложение.

vshnukrshna
программа и cmd закрывались по нажатию крестика на окошке
Научите как вы сделали что это не так.
Я заморочился и написал мегапрограмму:
print("hello")
input()
Консольное окно прекрасно закрывается при:
1 нажатии enter
2 ctrl+C
3 нажатии на крестик
Кстати нажатие на крестик не рекомендую, долго и все равно что выгнать программу из туалета не дав ей надеть штаны.
т.е. Приводите максимально упрощенный пример программы которая вызывает у вас проблему.



Отредактировано doza_and (Май 25, 2013 07:38:38)

Офлайн

#4 Май 29, 2013 02:31:37

vshnukrshna
Зарегистрирован: 2013-05-25
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

Спасибо.
Как пример, привожу код:

from PyQt4 import QtGui, QtCore
 
class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.button = QtGui.QPushButton('Test', self)
        self.button.clicked.connect(self.handleButton)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.button)
 
    def handleButton(self):
        print ('Hello World')
 
if __name__ == '__main__':
 
    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
Через CMD все замечательно, но если переименовать в .pyw и затем щелкнуть два раза, то ничего даже не запускается…
И еще проблема: интерфейс PyQt как-то уж слишком глючно работает..навожу курсор на кнопки в меню (Файл, Правка, Вид…Справка…и.т.д.) и они выделяются но не нажимаются.А иногда нажимаются. Вообщем какая-то чертовщина.

Отредактировано vshnukrshna (Май 29, 2013 03:22:21)

Офлайн

#5 Май 29, 2013 10:45:40

ZeUsM
Зарегистрирован: 2013-04-16
Сообщения: 23
Репутация: +  2  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

vshnukrshna
Спасибо.Как пример, привожу код:
Очень странно, ваш код даже без изменений в файле с расширением *.pyw запустился без проблем.
Заметил, что PyQT для пайтона 3.3 действительно сильно глюкав, советую 2.7 и горя не будет



Нет сегодняшних ошибок, есть вчерашние недоработки.

Отредактировано ZeUsM (Май 29, 2013 10:46:26)

Офлайн

#6 Май 29, 2013 22:31:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

vshnukrshna
то ничего даже не запускается…
Ну дальше берите мою мегапрограмму и посмотрите как она будет себя вести.
переименовав в *.pyw получите что она “не выполняется”.
модифицируем код и проверяем еще раз:
print("hello")
open("aa.dat","w").write("hello")
input()
У меня получается файл aa.dat.

А как у вас?



Офлайн

#7 Май 30, 2013 01:50:08

vshnukrshna
Зарегистрирован: 2013-05-25
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

Спасибо за ответы!
Так, вообщем откатился на python 2.7. Теперь .pyw работает так как надо и тему, в принципе, можно было бы закрывать, но… мне этого мало . Теперь я хочу преобразовать этот .pyw в .exe. Я использовал cx_Freeze, и exe создается и, вроде, даже без ошибок, но не работает. Щелкаю по нему - вылетает CMD и тут же закрывается. И все. Далее, пробую py2exe, но получаю сообщение, что нет какого-то MSVCP90.dll. Ребята, можете доступно объяснить что надо делать и какой компилятор лучше использовать?

Офлайн

#8 Май 30, 2013 12:09:16

ZeUsM
Зарегистрирован: 2013-04-16
Сообщения: 23
Репутация: +  2  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

vshnukrshna
Спасибо за ответы!Так, вообщем откатился на python 2.7. Теперь .pyw работает так как надо и тему, в принципе, можно было бы закрывать, но… мне этого мало . Теперь я хочу преобразовать этот .pyw в .exe. Я использовал cx_Freeze, и exe создается и, вроде, даже без ошибок, но не работает. Щелкаю по нему - вылетает CMD и тут же закрывается. И все. Далее, пробую py2exe, но получаю сообщение, что нет какого-то MSVCP90.dll. Ребята, можете доступно объяснить что надо делать и какой компилятор лучше использовать?
Для 2.7 я использовал pyinstaller он умеет работать с Qt, делает 1 файл *.exe (опция -F) -w соберет без консоли, можно задавать иконки, использовать UPX и много ещё чего. Использование очень простое (как мне показалось).



Нет сегодняшних ошибок, есть вчерашние недоработки.

Офлайн

#9 Май 30, 2013 19:34:48

vshnukrshna
Зарегистрирован: 2013-05-25
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

ZeUsM
Для 2.7 я использовал pyinstaller он умеет работать с Qt, делает 1 файл *.exe (опция -F) -w соберет без консоли, можно задавать иконки, использовать UPX и много ещё чего. Использование очень простое (как мне показалось).
Спасибо. Попробовал Pyinstaller2.0.
Простой код, выводящий в консоли “hello world!” преобразуется в .exe без проблем и все отлично работает. Проблемы начинаются если я пытаюсь преобразовать код с gui. Никаких сообщений об ошибках нет, exe-шник создается, но не работает. Я делаю так: python pyinstaller.py -w helloworld.py. Может здесь уже есть ошибка?

Офлайн

#10 Июнь 3, 2013 13:49:11

ZeUsM
Зарегистрирован: 2013-04-16
Сообщения: 23
Репутация: +  2  -
Профиль   Отправить e-mail  

Запуск .py двойным щелчком в Windows7

vshnukrshna
Очень странно, у меня все собралось и нормально запустилось.
А вывод pyinstaller-а можно выложить?



Нет сегодняшних ошибок, есть вчерашние недоработки.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version