PyO3 error
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- python
- 領域
- testing-qa
調査の方向性
Reproduce the failure with test_one.py, folder/init.py, folder/some_module.py, and the stated pytest command and package versions. Start by investigating how the --cov=folder.some_module entry point affects imports, then compare runs with and without --cov and with the listed dependency versions. Done means the cause is established and the reproducer no longer fails or the limitation is documented.
索引モデルが issue の本文から書いたものです。
説明
Hello,
I am currently debugging weird issue that happens to us only when using --cov arguments to pytest and only during running tests (not in production with the same code).
Reproducer
I was able to narrow it down for this little setup:
create this structure:
.
├── folder
│ ├── __init__.py
│ └── some_module.py
└── test_one.py
Now, some_module.py is empty.
folder/__init__.py has this content:
`from cryptography.hazmat.primitives import hashes`
test_one.py has this content:
`from cryptography.hazmat.primitives import hashes`
When you run this command (note that in my case the whole directory structure is in /home/vagrant/neto directory):
`PYTHONPATH=$PYTHONPATH:/home/vagrant/neto pytest /home/vagrant/neto/test_one.py --cov=folder.some_module`
you get
ImportError while importing test module '/home/vagrant/neto/test_one.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../.pyenv/versions/3.8.18/lib/python3.8/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
test_one.py:2: in <module>
from cryptography.hazmat.primitives import hashes
../venv/pack/lib/python3.8/site-packages/cryptography/hazmat/primitives/hashes.py:10: in <module>
from cryptography.hazmat.bindings._rust import openssl as rust_openssl
E ImportError: PyO3 modules may only be initialized once per interpreter process
explanation
Reasons why I think (though not sure) the problem is in python-cov:
- you can switch
from cryptography.hazmat.primitives import hashesforimport jsonschemaand you get the into the same error. - we dont get any errors in production with the other imported packages.
- you remove the --cov attribute and it runs without errors.
- that importError sounds like that it might be caused by the way --cov path is handled internally?
versions
- python 3.8.18
- pytest 7.4.2
- pytest-cov 4.1.0
- jsonschema 4.19.1, problem doesnt appear when downgrading to 4.17.3
- cryptography 41.0.4, problem doesnt appear when downgrading to 40.0.2
- 主要言語
- Python
- スター
- 2.1k
- フォーク
- 256
- 平均マージ
- 6日 10分
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pytest-dev/pytest-cov のほかの issue
-
Celery tests require package; test blows up if Celery not installed instead of skipping the tests gracefully対応中かも @dchaudhari7177 が 104 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
pytest-dev/pytest-cov#750 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
pytest-dev/pytest-cov#617 · コメント 1 件 ·
-
Only set dynamic context on coveragepy cores supporting it, perhaps?対応中かも @terminalchai が 19 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
pytest-dev/pytest-cov#755 · コメント 3 件 ·
-
INTERNALERROR when generating html report using pytest-cov 7.1.0 with jinja対応中かも @daleselaji-dev が 90 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
pytest-dev/pytest-cov#748 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 28/100
pytest-dev/pytest-cov#747 · リアクション 1 件 ·
pytest-dev/pytest-cov の issue をすべて見る
似ている issue
-
kind/bug priority/medium qa_automation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
yugabyte/yugabyte-db#37324 ·
メンテナーはふだん 1 日以内に返信
-
good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 87/100
btclib-org/btclib-node#2260 ·
メンテナーはふだん 1 日以内に返信
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)対応中かも @geyazheng が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
langchain-ai/langchain-aws#1469 ·
メンテナーはふだん 1 日以内に返信
-
GCToggler leaves collection enabled if the body re-enables it対応中かも @Gambit-Checkmate が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 7 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信