web-dev-qa-db-fra.com

ImportError: Aucun module nommé 'gdbm' ne se produit lors de l'utilisation de la source ~/.bashrc

Hé après avoir fait quelques changements dans le bashrc j'ai essayé d'utiliser 

source ~/.bashrc

mais j'ai eu l'erreur suivante

baaz@FireStorm:~$ source ~/.bashrc
Traceback (most recent call last):
  File "/usr/lib/python3.5/dbm/gnu.py", line 4, in <module>
    from _gdbm import *
ImportError: No module named '_gdbm'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 7, in <module>
    import dbm.gnu as gdbm
  File "/usr/lib/python3.5/dbm/gnu.py", line 6, in <module>
    raise ImportError(str(msg) + ', please install the python3-gdbm package')
ImportError: No module named '_gdbm', please install the python3-gdbm package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/command-not-found", line 27, in <module>
    from CommandNotFound.util import crash_guard
  File "/usr/lib/python3/dist-packages/CommandNotFound/__init__.py", line 3, in <module>
    from CommandNotFound.CommandNotFound import CommandNotFound
  File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 9, in <module>
    import gdbm
ImportError: No module named 'gdbm'

J'ai essayé d'utiliser les commandes d'installation mentionnées dans l'erreur

baaz@FireStorm:~$ Sudo apt-get install python3-gdbm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-gdbm is already the newest version (3.6.5-3~16.04.york0.2).
python3-gdbm set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Certaines solutions mentionnent également l'utilisation de commandes spécifiques à la version, mais n'ont toujours pas de solution.

baaz@FireStorm:~$ Sudo apt-get install python3.5-gdbm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package python3.5-gdbm is a virtual package provided by:
  python3-gdbm 3.5.1-1 [Not candidate version]

E: Package 'python3.5-gdbm' has no installation candidate

La commande pip install a donné l'erreur suivante

baaz@FireStorm:~$ Sudo pip3 install gdbm --upgrade
The directory '/home/baaz/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
The directory '/home/baaz/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with Sudo, you may want Sudo's -H flag.
Collecting gdbm
  Could not find a version that satisfies the requirement gdbm (from versions: )
No matching distribution found for gdbm

S'il vous plaît suggérer un moyen de résoudre ces erreurs.

5
baaz.sb

Votre erreur se produit probablement parce que votre .bashrc contient une faute de frappe quelque part, donc commande-non-trouvé est appelée, mais commande-non-trouvé semble avoir été récemment cassée. (Vous devriez obtenir la même erreur si vous tapez directement un non-sens dans votre terminal.)

Sudo apt install python3-gdbm=3.5.1-1

a travaillé pour moi.

De courir

dpkg -L python3-gdbm

il semblait que gdbm sur mon ordinateur était installé sur python3.6 pour une raison quelconque, pas python3.5, mais ma version de python3 est python3.5 (et la dernière fois que j’ai vérifié, python3.6 rompt quelque chose sous Ubuntu 16.04).

L'erreur que tu as eu quand tu as couru

Sudo apt-get install python3.5-gdbm

s'est plaint d'un problème de version, par conséquent, l'installation manuelle de la version qu'ils ont notée a fonctionné.

3
werryju

Cela a fonctionné pour moi:

Sudo ln -s /usr/lib/python3.6/lib-dynload/_gdbm.cpython-36m-x86_64-linux-gnu.so /usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so

Notez le 35m dans le nom du lien.

1
Adam Duracz