Numpy: バグ:OVHプラットフォームの非数値kernel_version

作成日 2020年06月24日  ·  5コメント  ·  ソース: numpy/numpy

こんにちは、カーネルのバージョンを検出するときに、__ ini __。py(Python3.8)のコードにエラーがあります。
私は解決策を見つけましたが、他のユーザーを助けるためにここで問題を詳しく説明します。

    # We usually use madvise hugepages support, but on some old kernels it
    # is slow and thus better avoided.
    # Specifically kernel version 4.6 had a bug fix which probably fixed this:
    # https://github.com/torvalds/linux/commit/7cf91a98e607c2f935dbcc177d70011e95b8faff
    import os
    use_hugepage = os.environ.get("NUMPY_MADVISE_HUGEPAGE", None)
    if sys.platform == "linux" and use_hugepage is None:
        use_hugepage = 1
        kernel_version = os.uname().release.split(".")[:2]
        kernel_version = tuple(int(v) for v in kernel_version)
        if kernel_version < (4, 6):
            use_hugepage = 0
    elif use_hugepage is None:
        # This is not Linux, so it should not matter, just enable anyway
        use_hugepage = 1
    else:
        use_hugepage = int(use_hugepage)

    # Note that this will currently only make a difference on Linux
    core.multiarray._set_madvise_hugepage(use_hugepage)

エラーメッセージ:

# usr\local\lib\python3.8\site-packages\numpy\__init__.py

 #python3.8 test.py
['4', '19-ovh-xxxx-std-ipv6-64']
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    kernel_version = tuple(int(v) for v in kernel_version)
  File "test.py", line 4, in <genexpr>
    kernel_version = tuple(int(v) for v in kernel_version)
ValueError: invalid literal for int() with base 10: '19-ovh-xxxx-std-ipv6-64'

Numpy / Pythonのバージョン情報:

このエラーを修正するための解決策は次のとおりです。

python kernel_version = tuple(int(v[0:2]) for v in kernel_version)

int (v [0: 2] )は、INTを正しく回復するために、文字列を切り捨てます。

00 - Bug high

全てのコメント5件

こんにちは、

OVHに同梱されているカーネルでも同じ問題が発生しています。
プルリクエストを行っているようです。 ありがとう!

うーん、私のエラー、なぜここでルーズバージョンを使用しなかったのですか?

ああ、もう一度見てください(今日はもう少し足りないものがあります)、それは奇妙なバージョンの文字列であり、マイクロリリースを落としています。 しかし、 LooseVersionはそれを正しく処理しているように見えるので、ここでそれを使用できると思います。 distutilsのインポートは遅いかもしれないと思いますが、おそらくtry:/except:追加するだけで、そもそもそれほど重要ではありません。

プルリクエストが見つかりません@ nejib1はたまたまそれに取り組んでいますか。

@ anirudh2290 PRはありませんが、@ sebergLooseVersionます。

このページは役に立ちましたか?
0 / 5 - 0 評価