Skip to content
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

v0.5.0 rc 動作報告 #138

Closed
ShotaroKataoka opened this issue Feb 26, 2022 · 42 comments
Closed

v0.5.0 rc 動作報告 #138

ShotaroKataoka opened this issue Feb 26, 2022 · 42 comments
Labels
bug Something isn't working

Comments

@ShotaroKataoka
Copy link
Collaborator

@yamamoto-yuta
事前に pip install rich==11.1.0 を行うとインストールできた
pip install rich だと 11.2.0 とかで失敗した

debug/Untitled.ipynb を表示したら,json形式で出力された

@ShotaroKataoka ShotaroKataoka added the bug Something isn't working label Feb 26, 2022
@ShotaroKataoka
Copy link
Collaborator Author

インストールされてるのは0.5.0rc0
image

@ShotaroKataoka
Copy link
Collaborator Author

jupyterがインストールされてる仮想環境じゃなかったので,インストールしなおしたけどjsonが出力された
python上で

from richcat import richcat
richcat('debug/Untitled.ipynb')

したらmdになった

@yamamoto-yuta
Copy link
Collaborator

問題

TestPyPIからインストールすると、以下のようなエラーが発生する。

環境:ローカルの richcat-play コンテナ内

root@1242602ca523:~# pip install -i https://test.pypi.org/simple/ richcat==0.5.0rc0
WARNING: The directory '/home/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://test.pypi.org/simple/
Collecting richcat==0.5.0rc0
  Downloading https://test-files.pythonhosted.org/packages/16/b0/8e1f8962532983e087a84e83e81694e1d43e70f81d1658ef62fdbd016727/richcat-0.5.0rc0-py3-none-any.whl (19 kB)
ERROR: Could not find a version that satisfies the requirement sphinx-autobuild==2021.3.14 (from richcat) (from versions: none)
ERROR: No matching distribution found for sphinx-autobuild==2021.3.14

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka

#138 (comment)

↑これどこの環境で実行しました?

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
ふつうにローカル

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
これはtestpypiサーバにsphinx-autobuild==2021.3.14
がないからですね
Pypiから先に該当のやつインストールせんといかん

問題

TestPyPIからインストールすると、以下のようなエラーが発生する。

環境:ローカルの richcat-play コンテナ内

root@1242602ca523:~# pip install -i https://test.pypi.org/simple/ richcat==0.5.0rc0
WARNING: The directory '/home/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://test.pypi.org/simple/
Collecting richcat==0.5.0rc0
  Downloading https://test-files.pythonhosted.org/packages/16/b0/8e1f8962532983e087a84e83e81694e1d43e70f81d1658ef62fdbd016727/richcat-0.5.0rc0-py3-none-any.whl (19 kB)
ERROR: Could not find a version that satisfies the requirement sphinx-autobuild==2021.3.14 (from richcat) (from versions: none)
ERROR: No matching distribution found for sphinx-autobuild==2021.3.14

@yamamoto-yuta
Copy link
Collaborator

@yamamoto-yuta ふつうにローカル

@ShotaroKataoka
それは素のWSL+Ubuntuの環境にそのまま入れたという解釈で合ってますか?

@yamamoto-yuta
Copy link
Collaborator

@yamamoto-yuta これはtestpypiサーバにsphinx-autobuild==2021.3.14 がないからですね Pypiから先に該当のやつインストールせんといかん

問題

TestPyPIからインストールすると、以下のようなエラーが発生する。
環境:ローカルの richcat-play コンテナ内

root@1242602ca523:~# pip install -i https://test.pypi.org/simple/ richcat==0.5.0rc0
WARNING: The directory '/home/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://test.pypi.org/simple/
Collecting richcat==0.5.0rc0
  Downloading https://test-files.pythonhosted.org/packages/16/b0/8e1f8962532983e087a84e83e81694e1d43e70f81d1658ef62fdbd016727/richcat-0.5.0rc0-py3-none-any.whl (19 kB)
ERROR: Could not find a version that satisfies the requirement sphinx-autobuild==2021.3.14 (from richcat) (from versions: none)
ERROR: No matching distribution found for sphinx-autobuild==2021.3.14

以下のコマンドで解決しました。

$ python3 -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ richcat==0.5.0rc0

公式ドキュメントに書いてありましたね…

If you want to allow pip to also download packages from PyPI, you can specify --extra-index-url to point to PyPI. This is useful when the package you’re testing has dependencies:
引用:Using TestPyPI — Python Packaging User Guide

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta ふつうにローカル

@ShotaroKataoka
それは素のWSL+Ubuntuの環境にそのまま入れたという解釈で合ってますか?

そんな感じ

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
richcat-play コンテナ内で動作確認してみてもらっても良いですか?自分はそこで動作確認して問題なく動きました

@yamamoto-yuta
Copy link
Collaborator

jupyterがインストールされてる仮想環境じゃなかったので,インストールしなおしたけどjsonが出力された python上で

from richcat import richcat
richcat('debug/Untitled.ipynb')

したらmdになった

@yamamoto-yuta ふつうにローカル

@ShotaroKataoka
それは素のWSL+Ubuntuの環境にそのまま入れたという解釈で合ってますか?

そんな感じ

自分の環境だとこの条件でも正常に動きました。

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
richcat-play コンテナ環境に以下の変更を加えたので、releaseブランチとdevelopブランチを最新の状態に更新をお願いします:bow:

  • aliasにTestPyPIからrichcatをインストールするためのコマンドを追加しました。 install-richcat 0.5.0rc0 みたいな感じでインストールできるようになってます。
  • コンテナ内に debug/ 内のファイルをマウントしました。これでコンテナ内で debug/ 内のファイルでrichcatの動作確認が可能です。

コミット:https://github.com/richcat-dev/richcat/commits/release/v0.5.0

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
docker環境だと表示できました

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
素の環境でうまく動いてないの、スクショとか撮れたりしますか?

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
ローカルの本環境にjupyterなし,venvにrichcatとjupyterという環境だと
python内のみで表示できる

@ShotaroKataoka
Copy link
Collaborator Author

スクショとっても分からんと思う

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
表示できた
本環境とかvenv環境とかのrichcatがぶつかってたらしい

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
image
その代わり,なんか幅が変やわ

@ShotaroKataoka
Copy link
Collaborator Author

Untitled.ipynb は変になる
jupyter_notebook.ipynb は大丈夫

@ShotaroKataoka
Copy link
Collaborator Author

jupyterに関してはimport_module('jupyter')じゃなくて
which jupyterでチェックした方が良いかもね
仮想環境によって変わってくるので

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
自分の環境だとvenv環境でも正常に動きました。というか出力セルの内容が表示されてるのおかしいですね…clear-outputするよう指定しているはずなので。
image

@ShotaroKataoka
Copy link
Collaborator Author

わからん

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
コードは最新のものになってますか?

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
なってる
jupyterはversion1.0.0

@yamamoto-yuta
Copy link
Collaborator

@yamamoto-yuta 表示できた 本環境とかvenv環境とかのrichcatがぶつかってたらしい

@ShotaroKataoka
あ、自分もvenv内でvenv外でインストールしたrichcat使っちゃってました…

@ShotaroKataoka
Copy link
Collaborator Author

ShotaroKataoka commented Feb 27, 2022

@yamamoto-yuta 表示できた 本環境とかvenv環境とかのrichcatがぶつかってたらしい

@ShotaroKataoka あ、自分もvenv内でvenv外でインストールしたrichcat使っちゃってました…

@yamamoto-yuta

  • 本環境:richcatのみ
  • venv:richcat+jupyter

の場合,venv内でrichcatをするとjupyterが利用できない
venvでpythonに入ってfrom richcat import richcatをするとvenvのrichcatを使うのでjupyterを表示できるみたい

@ShotaroKataoka
Copy link
Collaborator Author

これがwhichならどっちの環境でも使用できるはず

@yamamoto-yuta
Copy link
Collaborator

yamamoto-yuta commented Feb 27, 2022

@ShotaroKataoka
つまり、「素の環境とvenv環境で競合した場合、素の環境の方が優先される」のが原因って感じですかね。

なので、「素の環境でjupyter入れてない状態でvenv環境を作り、venv環境にはjupyterを入れた状態でvenv環境内でipynbファイルをrichcatすると、jupyterを入れたにも関わらずjsonで出力されてしまう」のが問題ということですね。

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
venv環境を作った後reloginすると、ちゃんとvenv内のrichcatが呼ばれるようになりました。

venv環境を作る→richcatをインストールする→ which richcat した場合のrichcatのパス:

/home/yamamoto/.local/bin/richcat

上記の後、reloginする→venv環境に入る→ which richcat した場合のrichcatのパス:

/home/yamamoto/develop/richcat/richcat-play-env/env/bin/richcat

試したときのログ全体:

❯ which richcat
/home/yamamoto/.local/bin/richcat
❯ which jupyter
jupyter not found
❯ venv
❯ activate
❯ pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ richcat==0.5.0rc0
~~~(出力省略)~~~
❯ which richcat
/home/yamamoto/.local/bin/richcat
❯ deactivate
❯ which richcat
/home/yamamoto/.local/bin/richcat
❯ relogin
❯ which richcat
/home/yamamoto/.local/bin/richcat
❯ activate
❯ which richcat
/home/yamamoto/develop/richcat/richcat-play-env/env/bin/richcat

@ShotaroKataoka
Copy link
Collaborator Author

whichはvenvになってるけど、なんかだめなんすよね

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
自分の環境だと想定通り動いてます…

venv環境:
image

素の環境:
image

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
インストールしなおしたりしたらvenvと素の環境で使い分けはできるようになった
ただ,幅がずれるのは直ってない
image

@ShotaroKataoka
Copy link
Collaborator Author

https://stackoverflow.com/questions/28908319/how-to-clear-jupyter-notebooks-output-in-all-cells-from-the-linux-terminal

jupyterのバージョンによって--clear-outputが効かないらしい

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
こうするとできました

            out, err = subprocess.Popen(f'jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --stdout --log-level WARN {filepath}'.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

↓みたいな雰囲気でバージョンチェックするといいと思います
バージョンチェックの部分は適当(1.0.0a0とかだとエラーになる)なので修正してもらうのと
どのバージョンが境目になるかは分からないのでよろしくお願いします

        jupyter = import_module_with_existence_confirmation('jupyter')
        if jupyter is not None:
            version = int(''.join([f'{int(v):0=3}' for v in jupyter.__version__.split('.')]))
            if version<=int(''.join([f'{int(v):0=3}' for v in '1.0.0'.split('.')])):
                out, err = subprocess.Popen(f'jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --stdout --log-level WARN {filepath}'.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
            else:
                out, err = subprocess.Popen(f'jupyter nbconvert --clear-output --stdout --log-level WARN {filepath}'.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

image

@ShotaroKataoka
Copy link
Collaborator Author

jupyter nbconvert -Vでチェックした方が良いかも
ちなみに当環境では5.6.1だった

jupyter/nbconvert#822
修正は6.0.0くらいかも

@ShotaroKataoka
Copy link
Collaborator Author

nbconvert別物だわ
pip install nbconvert --upgradeじゃないとバージョンアップされんし
チェックもこれでした方が良いし,わんちゃんpythonのライブラリで今の処理できるかも
image

@ShotaroKataoka
Copy link
Collaborator Author

ShotaroKataoka commented Mar 1, 2022

さらに言うとバージョン関係なく↓で動くのでバージョンチェックせずに一律これにすればいいか

            out, err = subprocess.Popen(f'jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --stdout --log-level WARN {filepath}'.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

@ShotaroKataoka
Copy link
Collaborator Author

ShotaroKataoka commented Mar 1, 2022

v0.5.0はいったん↑を修正してもらってでいいと思う

v0.5.xでnbconvertをライブラリ実行に変更してもいいかも
https://nbconvert.readthedocs.io/en/latest/nbconvert_library.html

@yamamoto-yuta
Copy link
Collaborator

さらに言うとバージョン関係なく↓で動くのでバージョンチェックせずに一律これにすればいいか

            out, err = subprocess.Popen(f'jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --stdout --log-level WARN {filepath}'.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

@ShotaroKataoka

これ反映した0.5.0rc2をTestPyPIにリリースしました!これで動作確認をお願いします:bow:
https://test.pypi.org/project/richcat/#history

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
確認しました
ちゃんと動いてます
image

@yamamoto-yuta
Copy link
Collaborator

@ShotaroKataoka
では、release→mainでPR出します!

@ShotaroKataoka
Copy link
Collaborator Author

@yamamoto-yuta
0.5.0おめでとうございます:tada:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants