Numpy: BUG : 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을 μ‚¬μš©ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆκΉŒ?

μ•„, λ‹€μ‹œ μ‚΄νŽ΄λ³΄λ©΄ (μ˜€λŠ˜μ€ 쑰금 더 빠진 것이 있음) 마이크둜 릴리슀λ₯Ό μ‚­μ œν•˜λŠ” μ΄μƒν•œ 버전 λ¬Έμžμ—΄μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ LooseVersion κ°€ μ œλŒ€λ‘œ μ²˜λ¦¬ν•˜λŠ” 것 κ°™μ•„μ„œ μ—¬κΈ°μ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. distutils κ°€μ Έ μ˜€κΈ°κ°€ 느릴 수 μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ try:/except: μΆ”κ°€ν•˜λ©΄ μ‹œμž‘ν•˜λŠ” 것이 그닀지 μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν’€ μš”μ²­μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. @ nejib1 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³ 

@ anirudh2290 PR이 μ—†μŠ΅λ‹ˆλ‹€. ν•˜λ‚˜ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ? 두 가지 μˆ˜μ • μ‚¬ν•­μ΄μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν•˜λ‚˜λŠ” λ³΄κ³ μ„œμ— λ‚˜μ™€ 있고 @seberg λŠ” LooseVersion ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰