-
Notifications
You must be signed in to change notification settings - Fork 120
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
PyPIで公開する? #653
Comments
maturin publishコマンドでできそうです。認証周りを良い感じにすればGitHub Actions上で上げれると思います |
manylinuxらへんが少々めんどくさいとは思いますが、、、 |
まず、manylinuxの問題を片付けるために、maturin-actionを使うのがいいかと思われます。 gpuは別で |
自分の方で取り組んでみようかなと思います。 |
@tuna2134 おお、ぜひよろしくお願いします!!
これはつまり、どのバージョンのpipに対応すればよいか問題ということでしょうか・・・?(ここを見ていました)
これはsetup.pyを使って、
良さそうです!! (まあそもそもダウンローダー自体はあるので、あとはこれをコアのメイン機能にくっつけるかどうかという話なのですが、そこどうしようかが決まっていない感じです。提案を聞いて、やっぱあったほうが良いかな〜〜〜という気持ちになりました。)
gpu版は分けるの良さそうに思います! pytorchもonnxruntimeもそんな感じなので。 結構コアの現状周りでややこしい点がいっぱいあると思うので、考えなどあればなんでも提案&聞いていただければ!! |
そうですね、2014だけでいいと思いますね、、、ただ3.11からはmanylinux2なので、両方対応させてもいいかと思います |
setup.pyでsetuptools.Extension使えばいいかと思います。 |
pytorchみたいに、インストールするURLを分けるのもありかもしれません、、、! |
一応もう一つの案としては、元からライブラリに同包しておいて、実行時にライブラリが格納されているパスを取得した後、渡す方法もありかと思います! |
ちょっと話が混線しそうだったので、話題に番号を振らせていただきました!
なるほどです。特に問題がなければ両対応もありなのかなと思いました。
ググりまくって調べてたのですが、maturinはsetup.pyが使えないっぽい気がしてきました。(勘違いかもです) (2023/10/22 23:31追記)あ、それともmaturinを使わない感じを想定されていたりしますか? 👀
なるほどです、ありだと思います!
なるほどです、全然ありな気がしました! |
いろいろわかりました、ありがとうございます!!! とりあえずmaturinでonnxruntime.dllなり辞書なりを足せるのかどうか確認してみて、無理なら別の方法とか探すのはどうでしょう? あるいはだんだんアップデートしていく形にし、もうonnxruntimeも辞書も何も付属しないvoicevoxパッケージをとりあえずpypiにアップロードするGithub Actionsを作る、という手もあるかもです。 (出来上がったけどコアの方針と違ってマージできない、というのは悲しいので、方針だけは相談できるとお互い損しないのかなと思ってます 🙏 ) |
pyproject.tomlのビルドシステムに新しくsetuptoolsを追加しようと思っているんですよね、、、 |
なるほどです!setuptools追加というのがどうできるのか気になります 👀 |
[build-system]
requires = ["maturin>=0.13.2,<0.14"]
build-backend = "maturin" ここをいじれば、、、 |
まず一つ情報を共有すると、onnxruntime.dllの読み込みを その上で私の意見を書いておくと:
|
@qryxip ありがとうございます!! とはいえsetup.py内でdllをダウンロードする方法は残っていると思います。
まだ先がしっかり見えていないこともあって、なかなかきっぱりと甲乙つけるのが難しそうでした。 同梱ができないということがわかった形ですが、一旦 @tuna2134 さん的にどうでしょう・・・? |
となると既存のwheelを上げて、後にできるようにするなどがいいかもですね |
なるほどです、とりあえず既存のwheelを上げる方針良いと思います!! @tuna2134 さん的には他に決まってたほうが良いこととかありそうでしょうか 👀 |
一応今回の変更でpypiにアップロード用のGitHub actionsでmaturinのテンプレを使った方がいいと思うのですけど、どうなんでしょうか? |
こちらですよね、見た感じ良さそうに思いました!! https://github.com/PyO3/maturin-action あとはtestpypiというのがあるらしいので、まずそこにアップロードできるようにするのが良いのかなと思いました! あと一旦方針がたったので |
testpypiは問題ないですね |
もしも無理なのであれば、多分maturin単体でもアップロードはできないと思うので |
このあたりは試行錯誤にもなってくると思うので、おまかせします!! |
少々問題がありまして、manylinuxでビルドする際、openssl周りが、、、() |
解決方法としては、openssl用のdockerイメージをつくるか、opensslのfeaturesにvendordを追加することかと思いますけど、、、 |
dockerイメージ作る場合、これをベースですかね? |
今外にいるため検証していない(PCがあれば
あたりかと思います。 CORE本体にダウンロード機能を実装するという話になるならともかく、現時点ではopensslクレートに依存する必要は多分無いため、Maturinのオプションでどうにかして外せる可能性はあるかと思います。 |
reqwestの方が一番あり得そうですね、、、 |
surfでしたね、、、 |
自分で見た限りmaturinの説明の方にはないので、、、できるかどうかわかりませんがやってみます。 |
報告感謝です!!
たぶん |
今家に帰ってわかったのですが、Maturinはそもそもdev-dependenciesを避けて では何故test_utilがコンパイル対象になってしまっているかというと... Python APIではtest_utilはdev-dependencyではなくnormalな方のdependencyになってしまっています。なので |
あー、opensslのffiに関するエラーですね。libopensslが存在しないと言っているので、そこの問題ですね。 |
そうですね、devの方に写しておきます。 |
#659 を作りました (こういうのは分けておくに越したことはないので) |
ありがとうございます! |
This comment was marked as resolved.
This comment was marked as resolved.
なんでですかねー? |
多分ここから漏れて |
あー、x86だからですかね?(完全に見落としてました) |
たぶんこれが通るのであれば、次はsdistに関する問題ですかねー? |
自分の手元環境だとmaturin sdist実行しても出ないのですが、actionsでやると何故か出るんですよね、、、 |
手元で再現しました。pyproject.tomlに書かれている |
これですね。つい3日前... |
maturin-actionって0.13.7で実行されているのですかね? |
maturinのバージョン跳ね上げたら、macOSの部分でopenjtalkに関するコンパイルエラー出ましたね、、、 |
maturin-actionの前に 手元でやってみた結果。open_jtalk-sysは
|
↑ あ。正しいのは ❯ poetry run -C crates/voicevox_core_python_api -- cargo build --release -p voicevox_core_python_api ですね。pyo3クレートにPythonが必要。 |
|
あ、違う。Maturin自体のPyO3/maturin#1493でこれが抜け落ちたからだ。多分。 voicevox_core/crates/voicevox_core_python_api/Cargo.toml Lines 7 to 9 in 47d5ab3
|
これについて何か進展はありますか? |
To: @Taikono-Himazin 今はここで止まっているという理解です: #693 (comment) onnxruntimeを別でロードすることが必要になりますが、一応非公式の実験としてこんなものを作りました: https://github.com/sevenc-nanashi/vv_core_registry/ |
内容
Python版VOICEVOX CoreをPyPIで公開するかどうかを考えるissueです。
個人的には公開しちゃうのが面白いかなと思ってます。
Github Actions上からビルドしてプッシュできると楽しそう。
Pros 良くなる点
pip install voicevox
などで使えるように実現方法
実はちょっと実現方法がちゃんと分かっていません。
今はWheelをビルドする形ですが、これをアップロードすればできる・・・?
その他
もし取り組んでみたい方がいらっしゃったらご連絡ください!!
The text was updated successfully, but these errors were encountered: