問題のフォローアップhttps://github.com/cool-RR/PythonTurtle/pull/105#issuecomment-421965482、#106 、および#90、すべてのパッケージングを(最良に)行う方法に関する情報の収集を開始したいと思いますPythonTurtleが実行されるプラットフォーム。 パッケージングを手動で実行する方法を知っていると、すべてを自動化するのは簡単な作業になります。
言い換えれば、私たちは必要です
注:この問題でこれを書くことが不快であることが判明した場合は、プロジェクトWikiを使用して
現在、WindowsとmacOSにはpy2exeとpy2appを使用しているようです。
PyCon Ottoでの最近の講演によると、 PyInstallerに切り替える必要があります。これにより、Windows、macOS、GNU / Linuxのスタンドアロン実行可能ファイルを同様に構築できます。
py2exeやpy2appの代わりにPyInstallerを使用する必要があることに同意します。
そして、信頼性の高い自動ビルドプロセスが必要であることに同意します。
また、 PythonTurtle Pythonパッケージをビルドし、リリース時にPyPIにプッシュすることも忘れてはなりません。
また、Gitタグ(バージョン番号付き)をGitHubリポジトリにプッシュしてリリースをトリガーすることをお勧めします。 その後、インストーラーはリリースページからダウンロードできるようになり
そのような自動化は少し高い目標ですが、リリースができるようになれば、私は恍惚となるでしょう。
リリースができるようになれば、私は恍惚となるでしょう。
次に、宇宙服を準備します。 :笑顔:
疑われるように、PyInstallerは、インストーラーをビルドするインフラストラクチャで実行する必要があります(たとえば、Windowsインストーラーの場合はWindows、macOSインストーラーの場合はMac)。
私はWindowsもMacも持っていません。 したがって、AppVeyorで構築がどのように行われるかを調べる面倒な調査を行う必要があります。 また、Python 3がインストールされたmacOSが必要です(そして、ドキュメントが古くなっているだけで、Python 3でビルドすることもできます)。
私はおそらくPythonパッケージの自動構築から始めるのが最善でしょう(そしてそれをPyPIに自動的にアップロードします)。 IIUC、とにかく、PyInstaller(のいくつかの機能)を使用してビルドするにはsetup.py
が必要です。
PythonTurtleをこの方法でインストールする方法が1つあります。
私をメンテナとしてPyPIプロジェクトに追加しますか? 自分の資格情報を使用できると、自動化が容易になります。 当然のことながら、私のユーザー名は「bittner」です。
PyPIのメンテナーとしてあなたを追加しました。
PyInstallerに関しては、ReactOSを搭載したVMがWindowsインストーラーの生成に機能するかどうか疑問に思います。
pip install PythonTurtle
にプログラムをインストールさせるには、必要なすべての依存関係が難しいことがわかります。
結論:
install_requires=['wxPython']
をsetup()
に追加することはできますが、前提条件( READMEに記載)が既にインストールされていない限り、これは失敗します。 -非常に技術的なエラー-をキャッチし、インストールが失敗した場合に役立つヒントを出力できる場合があります。wx
モジュールをインポートできない場合(アプリケーションモジュールではModuleNotFoundError
)にPythonTurtleにわかりやすい_reminder_を出力させることもできます。platform.release()
および/またはos.name
を使用して、ユーザーフレンドリーな「前提条件の自動検出」方法で実行することは可能ですが、非常に面倒です。 テキストメッセージを印刷して、READMEのインストールセクションをURLで参照することをお勧めします。
ReactOSを搭載したVMがWindowsインストーラーの生成に機能するかどうか疑問に思います。
自動化された方法でPythonTurtleパッケージを構築するクラウド内のサービスでVMをどのように使用するかはわかりません。 詳細を教えていただけますか? (開発者のマシンでのみローカルで使用する予定ですか?)
そうです、私はこれを考え抜かなかった。
私は2つの質問があると思います:
ReactOSはPyInstallerを使用してWindowsインストーラーを生成するために機能しますか?
クラウド上で自動的に機能するように設定できますか?
最初の質問に対する答えが「はい」であり、そのサービスを提供するSaaSプロバイダーがないとします。 次に、ReactOSゲストでVirtualBoxを実行するDockerイメージをセットアップできるとしましょう。 たぶん、そのDockerイメージを実行するSaaSプロバイダーを見つけることができますか?
https://github.com/pypa/python-packaging-user-guide/issues/267には、Pythonアプリケーションをパッケージ化するための興味深いリンクが
LinuxバンドルのGitHubへのアップロードが(PR#123を介して)完了するとすぐに、macOSの
Windows用のEXEとmacOS用のバンドルを機能させた後の次の素晴らしいことは、Linux用のAppImageを
AppImageには、(ある程度) AppImageHubと呼ばれるAppStoreもあります。 そして、比較することで、それが本当にクールなことであることがわかります。 :+1:
私にはいいですね!
現在のところ、(PyInstallerを使用して)macOSでアプリケーションバンドルを構築することは完全には機能していません。 別の方法として、自作式を作成することもできると思いました。 私は現在、関連するドキュメントを見ています:
うーん、数式を効果的に開発するにはMacを持っている人が必要なようです。 難しいことではないようですが、本当に。 :考え:
Python(3)に関連する式は次のとおりです。
Python@3
(= 3.7)に依存し、pipを介してwxPythonをインストールするだけで十分な場合があります(テストのように)。
参考までに、自動リリースが機能しない場合( api_key:
がサンプル値に設定されているため、現在は機能しない可能性がありVSCodiumプロジェクトがGitHubで自動リリースを行う方法は
ラム、あなたは「Windowsインストーラー」が現在の最優先事項であると述べました。 私は同意しますよ。
組合の現在の状態を書き留めましょう。
私はすべてを準備したと思います。 今、私はWindowsコンピュータを持っておらず、購入する予定もないので(ちなみに、macOSでも同じです)、足りないのは、足りないパズルのピースを引き継いで配置する人だけです。 私の腸の感覚から、私たちは本当に、本当に「タスク完了」に近づいています。
StackOverflowの回答によると、 Microsoft Visual Studio InstallerProjects拡張機能を使用して必要な構成を作成するだけでよいようです。
したがって、あなたは引き継ぐことができますか? 実行する必要があるのは、IIUCです。
.vdproj
ファイルをこのプロジェクトに追加します次に、AppVeyorはそのファイルを検出し、インストーラーをビルドして、ビルドアーティファクトページでダウンロードできるようにします。
私の腸の感覚から、私たちは本当に、本当に「タスク完了」に近づいています。
作業を始めれば、もうすぐ完成する気がしません。 Visual Studio Projectの使い方や、現在の計画もわかりません。 この仕事をするとしたら、フルタイムで数日かかると思います。
あなたはこれに多大な努力を払ったので、私はあなたにこれを話すことに満足していませんが、私は間違いなくこの問題に取り組むボランティアをしません。 PythonTurtleは、私がそれを改善するために1時間以上費やしていたので、今の私の人生の優先事項に近いわけではありません。
この問題がなければ何も価値がないと言って、他の問題からこの問題を指摘することで私は迷惑ですか? 私はあなたが他の問題に取り組むのを止めません、その努力が私に無駄に見えるのでおそらく参加しないでしょう、しかし私はあなたをブロックしません、そしてあなたがコードレビューや小さなことのために私を必要とするなら、喜んでそうします。
これについて別の考えを持っています。 「私はWindowsコンピュータを持っておらず、購入する予定もありません」とあなたは言います。 リストした項目を実行することに反対するのが、このチケットを十分に実行したためである場合、またはWindows関連の作業に時間を費やしたくない場合は、そうです、それは公正な反対です。
問題がWindowsライセンスにお金をかけたくないということであるなら、多分それは解決可能です。 1つのアイデアは、ReactOSを使用して、それがVisual StudioProjectを実行するかどうかを確認することです。 ReactOSがオプションでない場合は、Windowsライセンス/マシンを入手できるかもしれません。 それが役に立ったら教えてください。
それが役に立ったら教えてください。
Windowsでのプログラミングに_熱心_な人を知っていますか? WindowsはPythonにとって厄介な環境です。 「Python + Windows」がうまく調和しているという誤ったイメージに貢献したくありません。それだけです。
誰かがそのショットを与えたいですか?
そうではないので、ボランティア候補が到着するまで待つと思います。
タスクリスト...
進歩を遂げるのに役立ついくつかのヒント:
python3 setup.py clean bundle
を使用すると、すべてのバイナリバンドルを構築できます(PyInstallerが使用されます)。master
にプッシュするたびに、GitHubアクションはバイナリをGitHubリリースに自動的にプッシュする必要がありactions / create-releaseのようなものを使用したい場合があり私が投稿したMicrosoftDeveloper Communityのヘルプリクエストに対して、 @ judejから非常に良い回答が
結論:MSIのボランティアはいませんが、さらに2つの興味深いプロジェクトがあります。1つはインストーラーをビルドし、もう1つはPythonZIPアプリをビルドします。
これは、評価する価値のある2つの優れた選択肢になる可能性があります。 ありがとうジュード! :100 :: medal_military:
いいね。 最近、 PyOxidizerについても聞いたことがディスカッション)を100%理解したかどうかはまだわかりませんが、私たちが望むことを実行できる可能性があります。
週末にshiv
これをやってみようと思います。 PyOxidizer
を試してみてください。そうすれば、メモを比較できます。
申し訳ありませんが、私は数日前に新しい仕事を始めました、そして私は何もする時間がありません:(
PyOxidizer
は、私には実験のように聞こえます。Rustを使用して作成されたOSネイティブレイヤーである「RustVM」で実行されるPythonアプリケーション。 これがどのようなメリットをもたらすのかわかりません。 私たちが実行しているPyInstaller
セットアップは、すべてうまくいきませんか? :3rd_place_medal:
shiv
は、まったく新しいアプローチ(リリースアーティファクトの「ポートフォリオ」の新機能)であり、視聴者に提供するのに興味深いかもしれません。 私はそのアイデアがスリル満点だと思います(たとえ少数の人がそれを使うかもしれないと賭ける準備ができているとしても)。 :2nd_place_medal:
pynsist
は、私たちが探しているMicrosoftWindowsインストーラーのように聞こえます。 これにより、Windowsユーザーが期待するようなユーザーエクスペリエンスが提供される可能性があります。:one:インストーラーのダウンロード、:two:実行してスタートメニューエントリをインストールおよび追加、:three:スタートメニューからアプリケーションを起動。 :1st_place_medal:
pynsistの欠点はWindowsのみです。 MacとLinuxで(LinkedInから)Shivを進めようと思います。
最も参考になるコメント
Windows用のEXEとmacOS用のバンドルを機能させた後の次の素晴らしいことは、Linux用のAppImageを
AppImageには、(ある程度) AppImageHubと呼ばれるAppStoreもあります。 そして、比較することで、それが本当にクールなことであることがわかります。 :+1: