Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

366
Vistas
GDBM no funciona con Python 3.6 y anaconda

Uso Python 3.6 en un entorno anaconda. Instalé GDBM con

 conda install gdbm

La instalación salió bien, sin embargo, no puedo usar dbm.gnu desde Python:

 ModuleNotFoundError: No module named '_gdbm'

Parece que Python no incluye el módulo _gdbm , incluso si GDBM está realmente instalado.

¿Es este un problema conocido? ¿Cómo puedo arreglarlo?

¡Gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

También me enfrenté a este problema. Probablemente esta no sea la forma ideal, pero funciona. Hice lo siguiente para resolver esto:

 sudo apt-get install python3-gdbm

Esto instala la biblioteca gdbm para python3, sin embargo, dado que apt-get y anaconda son dos administradores de paquetes independientes; esto no va a resolver tu problema. Principalmente hacemos esto para obtener la biblioteca compartida .so que colocaremos en la carpeta correcta en nuestra instalación de anaconda. A continuación, encontramos la ubicación del archivo .so usando:

 dpkg -L python3-gdbm

Esto nos da el siguiente resultado:

 /. /usr /usr/lib /usr/lib/python3.5 /usr/lib/python3.5/lib-dynload /usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so /usr/share /usr/share/doc /usr/share/doc/python3-gdbm /usr/share/doc/python3-gdbm/copyright /usr/share/doc/python3-gdbm/changelog.Debian.gz /usr/share/doc/python3-gdbm/README.Debian

El archivo que necesitamos está aquí:

 /usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so

Copie este archivo en la carpeta lib-dynload de su instalación de anaconda; para mi esto fue -

 cp /usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so /home/username/anaconda3/lib/python3.5/lib-dynload

Tenga en cuenta que esto solo funcionará si el directorio en el que se copió .so está en sys.path de python. Para encontrar el directorio correcto para copiar, asumiendo que está dentro del entorno conda activado, ejecute:

 python -c 'import sys; [print(x) for x in sys.path if "lib-dynload" in x]'

Por ejemplo, en mi caso, el directorio estaba dentro de la ruta del entorno y no en la biblioteca principal de anaconda. ~/anaconda3/envs/myenvname/lib/python3.7/lib-dynload

Ahora intente importar el módulo en python -

 from _gdbm import *

o probándolo desde la línea de comando:

 python -m dbm.gnu

Esto debería haber solucionado tu problema.

Tenga en cuenta que el mío es un sistema operativo Ubuntu-16.06 y mi versión de Python es 3.5.2. El archivo .so también puede funcionar con python3.6, si no, puede intentar instalar python3.6-gdbm, aunque una búsqueda rápida de ubuntu 16.04 no me dio ningún resultado.

over 4 years ago · Santiago Trujillo Denunciar

0

La respuesta de @stason me funcionó con una pequeña modificación con respecto a la ruta de destino para el archivo .so. Copié los archivos a la carpeta lib-dynload en el entorno para que esto funcione.

En lugar de: /home/username/anaconda3/lib/python3.X/lib-dynload

Usé: /home/username/anaconda3/envs/**your_env**/lib/python3.X/lib-dynload

Hacer lo mismo pero apuntar a esta carpeta funcionó para mí. Espero que esto ayude a cualquiera con el problema.

¡Gracias!

over 4 years ago · Santiago Trujillo Denunciar

0

Aunque la pregunta es para Python3, llegué aquí mientras intentaba instalar gdbm en Python2, así que publico mi respuesta, ya que puede ser útil para otros. El comando correcto fue conda install python-gdbm . Aunque conda install gdbm se realizó, el módulo no se pudo importar. Sin embargo, según aquí , es posible que esto no funcione para Python3.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda