- changed status to open
タスク: Python3への移行
Pythonはバージョン3以降大幅に仕様が整理され、2以前との互換性が無くなりました。現在はPython 2系とPython 3系が並行してメンテナンスされていますが、2系のサポートは2020年までとされています。
CardWirthPyも、それまでにPython 3系へ移行しなくてはなりません。必要なライブラリは、全てPython 3でも動作するか、動作するものがある事を確認済みです(py2exeはpipにあるものが3系用です)。
あとはCWPy本体のコードを書き換えるのみですが、これは並大抵の作業にはならない事が予想されます。他の作業との兼ね合いを考えると、軽々と開始はできません。
Python 2から3への移行は大きなテーマなので、実際の作業に際して参考になる記事は、検索すれば大量に見つかります。
たとえば:
こうした記事を参考に作業を進めていく事になるかと思います。
Comments (8)
-
reporter -
reporter Python 3.4.4で試してみたのですが、pygameのインストールで失敗してしまいます。
たぶん今は3系向けのコードを維持しつつpy2exeの更新を待つのが最も楽な道かと思われます。
-
reporter py2exeの競合をいくつか試してみました。
- Nuitka …… バイナリはできるものの起動が非常に遅い、大きくなる、
--standalone
がないと他の環境に持ち出した時に動かない? しかし--standalone
をつけると1つのファイルにまとまらない。 - PyInstaller ……
--onefile
でうまく1ファイルのバイナリができる。ファイルサイズもpy2exe以下。しかしファイルの展開が入るためか、いくつかの環境で試した限りではおおむね起動が遅い。1ファイルにまとめない場合は大量のファイルをぶちまけるはめになる。 - cx_Freeze …… 大量のファイルができるが
CardWirthPy.exe
とpython36.dll
以外はlib
フォルダに追い出す事ができる。展開が無いので起動が速い。
現時点ではcx_Freezeが最善の選択肢と思われます。
lib
以下を気にしなければpy2exeよりいいかもしれません。 - Nuitka …… バイナリはできるものの起動が非常に遅い、大きくなる、
-
reporter Python3版リポジトリであと一週間ほどテストしてみて、よさそうならメインストリームにマージします。
-
reporter pull request #2219
-
reporter マージしてwikiの開発者向け情報を更新しました。
対応作業の結果、副次的に64-bitビルドが作れるようになりました。テスト版も32-bit版と64-bit版の両方をアップロードしています。リリースも両方出す事になるかと思います。
-
bit差分が配布されるようになっていたので、cwpy-installerを更新しました。
更新しなくても、設定ファイル内の正規表現パターンを手動で修正すれば、ダウンロードできるようにはなります。
-
reporter - changed status to resolved
βリリースまでこぎつけたので、このIssueは解決にします。
- Log in to comment
https://bitbucket.org/k4nagatsuki/cardwirthpy-reboot-with-python3
上記リポジトリで作業を行っています。
Python 3.6.4への移植では、実行環境側の問題が2点あります。
当面は3.4系をターゲットにするのがいいかもしれません。