python / python/pyperformance

Editable installation isn't working properly

オープン
#319 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Python
スター
1k
フォーク
203
平均マージ
1時間 20分
マージ済み PR(30日)
2

説明

If pyperformance is installed as editable pip install -e . from the git repository, it doesn't work when invoked

$ /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance                                        
ERROR: pyperformance should not be run without installing first                                                                         
(consider using the dev.py script)             

The check is done by is_installed() which calls both _is_dev() and _is_devel_install() which are both broken.

The function is_dev() bases the logic on the presence of setup.py which is long gone.

The function _is_devel_install() instead check the presence of pyperformance.egg-link in the site-packages.

In my installation I have:

  • pyperformance.egg-info directory in the git repository
  • __editable___pyperformance_1_0_9_finder.py, __editable__.pyperformance-1.0.9.pth, pyperformance-1.0.9.dist-info in the site-packages

I'm trying to invoke pyperformance using a dev instance via

python3.12 /work/oss/repos/pyperformance/dev.py compile_all benchmark.conf

and it will fail eventually:

2023-10-19 15:25:52,049: Building wheels for collected packages: pyperformance                                                                                                                                                                                                   
2023-10-19 15:25:52,050:   Building editable for pyperformance (pyproject.toml): started                                                                                                                                                                                         
2023-10-19 15:25:52,885:   Building editable for pyperformance (pyproject.toml): finished with status 'done'                                                                                                                                                                     
2023-10-19 15:25:52,888:   Created wheel for pyperformance: filename=pyperformance-1.0.9-0.editable-py3-none-any.whl size=6710 sha256=159fbc3f13ae47399e04d5f7cdf5e024c3652b2ed91096f8638844238e005c0d                                                                           
2023-10-19 15:25:52,888:   Stored in directory: /tmp/pip-ephem-wheel-cache-ubyuatck/wheels/0d/04/cb/add3bede8e376e8789c834f334f1834467606bde2625d5a4ad                                                                                                                           
2023-10-19 15:25:52,896: Successfully built pyperformance                                                                                                                                                                                                                        
2023-10-19 15:25:52,922: Installing collected packages: psutil, packaging, pyperf, pyperformance                                                                                                                                                                                 
2023-10-19 15:25:53,307: Successfully installed packaging-23.2 psutil-5.9.6 pyperf-2.6.1 pyperformance-1.0.9                                                                                                                                                                     
2023-10-19 15:25:53,437: + /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance venv recreate --venv /tmp/tmpdir/venv --benchmarks '<NONE>'                                                                                                                                        
2023-10-19 15:25:53,514: ERROR: pyperformance should not be run without installing first                                                                                                                                                                                         
2023-10-19 15:25:53,515: (consider using the dev.py script)                                                                                                                                                                                                                      
2023-10-19 15:25:53,523: Command /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance venv recreate --venv /tmp/tmpdir/venv --benchmarks '<NONE>' failed with exit code 1                                                                                                          
2023-10-19 15:25:53,565: Command /work/oss/ENTLLT-6897/venv3.12/bin/python -m pyperformance compile /work/oss/repos/ci-scripts/projects/python/benchmark.conf be5e8a010341c4d2d28ef53a1baed402ee06466e main --no-update --no-tune failed with exit code 11                       
2023-10-19 15:25:53,565: Benchmark exit code: 11                                                                                                                                                                                                                                 
2023-10-19 15:25:53,566: FAILED: main-be5e8a010341c4d2d28ef53a1baed402ee06466e 

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

pyperformance/init.py から始め、特に is_installed()、is_dev()、_is_devel_install() を確認し、その後 dev.py が editable installation をどのように作成して呼び出すかを調べます。pip install -e .python -m pyperformance で失敗を再現します。editable installation がインストールチェックに合格し、dev.py のコンパイルフローから pyperformance を正常に呼び出せれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
build-system
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。