Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Запуск .py двойным щелчком в Windows7


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

Автор: Gunjy 25.5.2013, 12:34
Переименуй файл - сделай расширение .pyw. Если я не ошибаюсь .pyw - это для программ с интерфейсом, .py - для скриптов, работающих в фоновом режиме.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id519ffc3e6ccc193a31000002#findElement_E7045_51a085a66ccc19237500057e_0

Автор: vshnukrshna 29.5.2013, 02:34
Спасибо, но не работает=(
Как пример, привожу код:
Код
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 30.5.2013, 01:51
Так, вообщем откатился на python 2.7. Теперь .pyw работает так как надо и тему, в принципе, можно было бы закрывать, но... мне этого мало =). Теперь я хочу преобразовать этот .pyw в .exe. Я использовал cx_Freeze, и exe создается и, вроде, даже без ошибок, но не работает. Щелкаю по нему - вылетает CMD и тут же закрывается. И все. Далее, пробую py2exe, но получаю сообщение, что нет какого-то MSVCP90.dll. Ребята, можете доступно объяснить что надо делать и какой компилятор лучше использовать? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)