あれこれいじる

プログラミング、勉強してます

WindowsでPyQt5 + Python3の環境設定

環境設定系は書いておくと誰かの助けになるはずなので。。。


とりあえずPython3のインストールは終わってるものとします。


Riverbank | Software | PyQt | PyQt5 Download
ここからWindows用のzipファイルを落してきて解凍してワーキングディレクトリにぶち込む。


Riverbank | Software | SIP | SIP Download
また、PyQtを使うにあたって必須であるPythonC/C++バインディング用のSIPも落としてきます。
SIPについて詳しくは Riverbank | Software | SIP | What is SIP?


解凍してワーキングディレクトリにぶち込んだSIPのディレクトリに飛びます。


以下のコマンドを実行。

>python configure.py
>nmake
>nmake install


次に、PyQtのディレクトリで同じようにコマンドを実行してやるんだけど、
qmakeのPATHを通さなきゃならない。

>set PATH=%PATH%;C:\Qt\(Qtのバージョン)\(コンパイラ)\bin
>python configure.py
>nmake
>nmake install


これで環境設定は出来るはずです。
まぁこんなことしなくても便利なexe形式のバイナリが公式のsourceforgeにあるけどね…

コンパイルエラーがでる場合は

python configure.py -w

ていうオプションを与えてやれば、何がエラーを起こしてるかわかるはずです。


僕の場合はなぜかnmakeがエラー吐いてうまくいかず、
VisualStudioを再インストールしたり、
コマンドプロンプトをいくつか試してみたり、
バージョンの違うVisualStudioを試してみたり

色々時間がかかってしまった。



動作確認用プログラムでもどうぞ

from PyQt5.QtWidgets import *

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.button = QPushButton("What time is it now?")
        self.button.clicked.connect(self.getNowTime)

        mainLayout = QHBoxLayout()
        mainLayout.addWidget(self.button)

        self.setLayout(mainLayout)
        self.setWindowTitle("PyQtTest")

    def getNowTime(self):
        import re
        from datetime import datetime
        now = str(datetime.now())
        dateWord = ["年","月","日","時","分","秒"]
        msgBox = QMessageBox()
        msgBox.setText("".join([i + j for i,j in zip(re.split(r"[- :.]",now),dateWord)]) + "です")
        msgBox.exec()
    
        

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    mw = MainWindow()

    mw.show()
    sys.exit(app.exec_())