0

I'm a new coding learner. I use the book "Rapid GUI Programming with Python and Qt" to learn PyQt. But, I found that I cannot execute the samples(.py files) which the book gives. Almost all samples can not be opened.

Here is one of the samples

#!/usr/bin/env python
# Copyright (c) 2007-8 Qtrac Ltd. All rights reserved.

# This program or module is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, either version 2 of the License, or
# version 3 of the License, or (at your option) any later version. It is
# provided for educational purposes and is distributed in the hope that
# it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
# the GNU General Public License for more details.

import random
from PyQt4.QtCore import *
from PyQt4.QtGui import *


if random.choice((1, 2)) == 1:
    import ui_ticketorderdlg1 as ui_ticketorderdlg
else:
    import ui_ticketorderdlg2 as ui_ticketorderdlg


class TicketOrderDlg(QDialog,
        ui_ticketorderdlg.Ui_TicketOrderDlg):

    def __init__(self, parent=None):
        super(TicketOrderDlg, self).__init__(parent)
        self.setupUi(self)
        today = QDate.currentDate()
        self.whenDateTimeEdit.setDateRange(today.addDays(1),
                                   today.addYears(1))
        self.updateUi()
        self.customerLineEdit.setFocus()


    @pyqtSignature("QString")
    def on_customerLineEdit_textEdited(self, text):
        self.updateUi()


    @pyqtSignature("double")
    def on_priceSpinBox_valueChanged(self, value):
        self.updateUi()


    @pyqtSignature("int")
    def on_quantitySpinBox_valueChanged(self, value):
        self.updateUi()


    def updateUi(self):
        amount = self.priceSpinBox.value() * \
                 self.quantitySpinBox.value()
        enable = not self.customerLineEdit.text().isEmpty() and amount
        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable)
        self.amountLabel.setText("$ %0.2f" % amount)


    def result(self):
        when = self.whenDateTimeEdit.dateTime().toPyDateTime()
        return (unicode(self.customerLineEdit.text()), when,
                self.priceSpinBox.value(), self.quantitySpinBox.value())


if __name__ == "__main__":
    import sys

    app = QApplication(sys.argv)
    form = TicketOrderDlg()
    form.show()
    app.exec_()
    print(form.result())

I use windows command and input:"python -m ticketorderdlg.py" It returns below:

C:\Python34\python.exe: Error while finding spec for 'ticketorderdlg.py'
    (<class 'AttributeError'>: 'module' object has no attribute '__path__')

what can I do? Please help me!

python version:3.4 ; PyQt version:GPL v4.11.4 for Python v3.4(x32)

1 Answer 1

1

You must execute without the parameter m:

python ticketorderdlg.py
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.