ラベル

2016年8月11日

MoeItemをソースコードから実行しよう

MoeItemビルド方法説明の2回目。
今日は、MoeItemのソースコードを入手して、実行できるようになるのが目的です。

3. MoeItemをソースコードから実行しよう

3.1 MoeItemのソースコードを入手

MoeItemの最新ソースコードはBitbucketに置いてあるので、ダウンロードの [リポジトリをダウンロードする] から.zipとして取得するか、Mercurial (hg)コマンドを使って複製します。
hg cloneする例を以下に示しますが、4MB近くあるMoeItemデータベースを含むため結構時間がかかります。最新ソースを入手するだけなら.zipを取得して展開した方が良いみたいです。
C:\> hg clone https://EloiseSeverin@bitbucket.org/EloiseSeverin/moeitem
複製先ディレクトリ: moeitem
全リビジョンを取得中
リビジョンを追加中
マニフェストを追加中
ファイルの変更を追加中
70 個のリビジョン(433 の変更を 68 ファイルに適用)を追加
ブランチ default へ更新中
ファイルの更新数 63、 マージ数 0、 削除数 0、 衝突未解消数 0

3.2 uiファイルからpyファイルを作成

PyQtのプログラミングは、(プログラム\PyQt GPL v4.11.4...にインストールされる)Designerで画面デザインを行うところから始まります。ちょっとDesignerで moeItem\ui_moeitem.ui を開いてみましょう。とても簡単に画面デザインできることが解りますね。

リポジトリには.uiファイルまでしか含んでいませんので、pyuic4 でPythonファイルに変換する必要があります。
C:\> cd moeitem\moeItem
C:\> pyuic4 ui_moeItem.ui -o ui_moeItem.py
C:\> pyuic4 ui_configDialog.ui -o ui_configDialog.py
...
いちいちpyuic4を実行するのは面倒ですね。こんなときにはmakeで一発変換です。
C:\> cd moeitem\moeItem
C:\> make
必要なファイルが全て作成されました。

3.3 moeItem.pyw を実行

必要なファイルが全て整いましたので moeItem.pyw を実行してみます。
c:\> python.exe moeItem.pyw
Pythonにパスを通してない方は、フルパスによる起動が必要かもしれません。
c:\> c:\Python27\python.exe moeItem.pyw

3.4 コマンドプロンプト無しで moeItem.pyw を実行

pythonw.exe を使って起動するとコマンドプロンプトを開かなくなります。
c:\> c:\Python27\pythonw.exe moeItem.pyw

(Windows実行ファイル(.exe)を作ろう につづく)

4 件のコメント:

匿名 さんのコメント...

MTです(素人)。
①makeについて
>いちいちpyuic4を実行するのは面倒ですね。こんなときにはmakeで一発変換です。
は、以下のmakeでしょうか。
C:\Program Files (x86)\GnuWin32\bin
②①のmakeを実行すると以下のエラーが出るのでPyQt5を入れなきゃいけないのでしょうか?
>ImportError: No module named PyQt5
③PyQt4の時は以下でも動くでしょうか(config.py L7)?
from PyQt4 import QtCore, QtGui, QtGui #org#from PyQt5 import QtCore, QtGui, QtWidgets

Eloise Severin さんのコメント...

①makeについて
はい。C:\Program Files (x86)\GnuWin32\bin\make.exe です。
開発をしていく上でmakeは多用するので、Pathを通してしまった方が良いでしょう。
②PyQt5について
最新のmoeItemは、python3,PyQt5ベースに移行しているので、最新のソースコードを利用するなら
python3とPyQt5が必要です。
PyQt4とPyQt5について、いくつかの関数がQtCoreからQtWidgetsに移動したりしたので、
そのままでは動きません。(少々の変更で動きます。)

近年はDeeplearningが流行りなので、anacondaとかを使うと環境構築は楽です。

匿名 さんのコメント...

MTです(Cがちょっとわかるくらい。Python未知)。またちょっとやってみました。
Anaconda Python3.5でイルンストール。
GNUイルンストール。パス通す。
EloiseSeverin-moeitem-e4965bd68874.zipを解凍(7/1最新zip)。
cd C:\xxx\moeitem makeで最後がこんな感じ。
-----------
adding 'moeItem-4.1.5\lib\media\zoom.ico'
removing 'moeItem-4.1.5' (and everything under it)
-----------
python.exe moeItem.pywで最後がこんな感じ。
-----------
Traceback (most recent call last):
#省略
File "C:\xxxx\moeitem\lib\iconSelectorDialog.py", line 12, in
from .ui_iconSelectorDialog import Ui_iconSelectorDialog
ImportError: No module named 'lib.ui_iconSelectorDialog'
-----------
#1 ui_iconSelectorDialog.uiはあるんですが、最後のNo moduleはどういう事かお分かりになるでしょうか。
同じような位置の以下とかはエラーは出てないみたいです。
-----------
lib\configDialog.py(16): class ConfigDialog(QtWidgets.QDialog, Ui_configDialog):
-----------
どうぞよろしくお願い致します。

まるてぃーぬ さんのコメント...

ui_iconSelectionDialog.ui を元にして、ui_iconSelectionDialog.py を作成しよう。
cd lib; make で ui_*.py が作成できるよ。
pyuic5.exe は、C:\Program Files\Python3*\Scripts\pyuic5.exe あたりに入ってます。

anacondaを入れてるなら、以下コマンドを投入して環境を最新にしましょう。
conda upgrade pyton
conda upgrade conda
conda upgrade --all
なお、condaに含まれてる pyuic5.bat には不具合があるので、
Anaconda\Library\bin\pyuic5.bat
を開いて、C:/.../Anaconda3\python.exe となっているところを、""で括ってあげる必要があります。
"C:/.../Anaconda3\python.exe" こんな感じに。