-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
追加: パッケージ内 run.py
とその実行を追加
#1376
base: master
Are you sure you want to change the base?
Conversation
うーーーーーーーーーーーーーん なしでは無いのですが、移動できるから移動してみた、という感じがちょっとしました!
プルリクの段階だと、利点と欠点が拮抗してる(ほんの少し利点のが大きい)という印象です! |
あ。 もしよかったら他の方の意見も聞いてみたいです 🙏 |
私の経験は逆でした。
Python 開発者にとってはむしろ明確です。
👍️
👍️ |
あまり詳しくないですが あともう一つ注意する問題として |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
run.specの移動はともかく、run.pyの移動をすべきなのかとても迷ってます。
まずコミッターにとってよく使う起動コマンドの変更は破壊的変更なので、気軽にぽんぽん変えたくない気持ちがあります。
コミッター全員が変更に対応しないといけない。
変えても良いけど、こっちのが良い理由がほしいです。
「普通pythonアプリはpython -m起動だよ」という有名な前例があれば良さそう。
(pypiやpipなど、そのプロジェクトが依存する何かを起動するときはpython -m
で良さそう)
あとrun.pyでやってることがvoicevox_engine
パッケージ内でやる範疇を超えている気がしないでもないです。
resourcesディレクトリを見に行きますが、これはvoicevox_engine
パッケージの責務というより、起動スクリプトの責務な気がします。
将来的にscripts/run.py
に移る可能性があるかもとか、本当にこれが最高なのか考えておきたい気持ちがあります。
あとpython -m
で起動する方法は、まあpythonそこまで知らない人にとって何が起こるのかわからないと思います。
なのでコードの入口がどこなのかの案内は必須だと思います。
案内とセットじゃないと貢献しづらくなるという判断です。
(逆にこの問題があるからpython hoge.py
起動のが良いのではと感じています)
まあこれはpython voicevox_engine/run.py
にすればOKな気がします。
それとPRタイトルと内容が変わってきてるかもです。これはタイトル変えれば良さそう。
ごたごた言ってすみません 🙇
|
内容
概要: パッケージ内
run.py
とその実行を追加VOICEVOX ENGINE は起動用スクリプトとして
run.py
を定義している。これはプロジェクトルート直下に置かれた Python スクリプトであり、
voicevox_engine
Python package とは独立した存在である。形式的には、外部のrun.py
スクリプトがvoicevox_engine
モジュールを呼び出す形になっている。しかし、
run.py
は VOICEVOX ENGINE のサーバー定義をするなど、本質的にvoicevox_engine
package の一部である。独立した呼び出し用スクリプトではない。run.py
の正しい立ち位置は「voicevox_engine
内部のエントリーポイントモジュール」である。であれば、
__main__.py
の仕組みを使ったエントリーポイント化が正しい実装である。これに伴い、実行コマンドの意味が「起動用スクリプト
run.py
を叩く」から「voicevox_engine
モジュールを実行する」へ変更される。ただし、
run.py
は PyInstaller によるビルドの起点にもなっており、ビルドへの配慮が必要である。昨今のリファクタリングにより
run.py
自体はファイル位置に依存しなくなっている(例: パス取得)。ゆえに配慮すべきは datas 等の非 Python 依存性のみである。幸い、これは
run.spec
の調整のみで実現できる。このような背景から、パッケージ内へ
run.py
を移動し実行コマンドを変更することを提案します。以下の動作が確認済みです:
python -m voicevox_engine --enable_mock
)--voicevox_dir
オプション付き実行と API HTTP 呼び出し関連 Issue
無し