Hola, hay un error en el código de __ini__.py (Python3.8), al detectar la versión del Kernel.
Encontré la solución pero aquí detallo el problema para ayudar a otros usuarios.
# 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'
Para corregir este error, aquí está la solución:
python
kernel_version = tuple(int(v[0:2]) for v in kernel_version)
Los int (v [0: 2] )
truncan la cadena para recuperar el INT correctamente.
Hola,
Tengo el mismo problema con el kernel incluido en OVH.
Veo que estás haciendo la solicitud de extracción. Gracias !
Hmmm, mi error, ¿por qué no usé la versión suelta aquí?
Oh, mirando de nuevo (lo siento, faltan cosas un poco más hoy), esa es una cadena de versión extraña, dejando caer el micro-lanzamiento. Pero, parece que LooseVersion
lo maneja correctamente, así que creo que podemos usarlo aquí. Aunque supongo que importar distutils puede ser lento, tal vez solo agregue un try:/except:
no es muy importante para empezar.
No pude encontrar la solicitud de extracción, @ nejib1, ¿estás trabajando en ella?
@ anirudh2290 No hay relaciones públicas, ¿podrías crear una? Parece haber dos correcciones, una dada en el informe y el uso de @seberg de LooseVersion
.