PySide2 ビルドしてみる
ここ見たら大体書いてあるよ
https://wiki.qt.io/PySide2_GettingStarted
PySide2最新の状況はこのへんをチェック
環境
- Windows10
- Python 3.6 (64bit)
- Qt 5.6
- OpenSSLは使わないよ
インストールしておくもの
ビルド
- pyside-setupリポジトリの5.6ブランチをrecursiveでcloneする
- 一応virtualenvでビルド環境つくってactivate
- sphinxモジュールをインストール
- VCコンパイラのパス通す
- wheelビルド実行
こんな感じ
> git clone -b 5.6 http://code.qt.io/cgit/pyside/pyside-setup.git/ --recursive > pip install virtualenv > virtualenv hogehoge > hogehoge/Scripts/activate.bat > pip install sphinx > cd pyside-setup > "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 > python setup.py bdist_wheel --ignore-git --qmake="C:\Qt\Qt5.6.2\5.6\msvc2015_64\bin\qmake.exe" --cmake="C:\Program Files\CMake\bin\cmake.exe"
fcntlを呼ぼうとしてエラーが出る?
popenasync.pyのdecode関数を適当に修正
(たぶん日本語表示しようとして例外出てる)
def decode(b): try: return b.decode('utf-8') except UnicodeDecodeError: return b.decode('shift-jis')
非英語圏へ対応する気はなさそうだ
shibokenのドキュメントビルドでMarkupSafeのエラーが出る?
pip install sphinxでMarkupSafeのインストールに失敗しているのでいつものところからwheelを落とす
pip uninstall MarkupSafe pip install MarkupSafe‑1.0‑cp36‑cp36m‑win_amd64.whl
こんな感じで再インストール
RC Pass 1 failed to run. というエラーが出る?
rc.exeにパスが通っていないか別プラットフォームのrc.exeを読んで失敗している
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64
こんな感じでrc.exeのある場所にパスを通すか、WindowsSDKをインストールしなおすと良いと思う
bdist_wheelコマンドが見つからない?
pip install wheel
もしくはこのあたりを参考に
リンクエラーが発生する?
prebuiltなものとビルドターゲットがズレてると出る気がする。32bit版のPythonとかQtを使ってるとか、vcvarsall.bat呼ぶときにamd64つけてないとか
whlのサイズが大きいのが気になる?
setup.pyのdllコピーの規則がQt4時代から変わってないのが原因
- デバッグ用のdllも含まれてしまっている
- setup.pyの *d4.dll, *d?.dll となっている箇所を *d.dll に修正する
- platformsのdllコピーしてるところに ignore=['*d.dll'] を追加する
pyside2uic.Compiler, pyside2uic.port_v3モジュールを使いたい?
setup.pyのsetup()の引数を変更する
packages = ['PySide2', 'pyside2uic', 'pyside2uic.Compiler', 'pyside2uic.port_v3']