Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

365
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda