Python: pas de module nommé datetime?

51

OS: Ubuntu 14.04 LTS

Python: 2.7.6

Mon installation de Gourmet Recipe Manager a soudainement cessé de se charger. Lorsque je l'exécute dans une fenêtre de terminal, j'obtiens les éléments suivants à la fin de la trace:

import datetime as dt
ImportError: No module named datetime

Autant que je sache, rien n'a été modifié et mon installation Python est à jour. Il a simplement cessé de travailler hier. J'apprécierais certainement une bonne approche pour diagnostiquer et résoudre ce problème!

Mise à jour: merci à tous ceux qui ont répondu!

Tim, je suis désolé si j'ai posé cette question au mauvais endroit. S'il vous plait, croyez-le, il suffit de suivre les liens du site Web Ubuntu pour être un nouveau type.

TheSchwa, j'ai essayé votre suggestion et j'ai reçu le même message d'erreur que ci-dessus.

muru, le paquet semble être installé, mais je ne sais pas s'il est correctement installé / configuré. Comment pourrais-je le découvrir?

Je suis désolé pour toutes les questions, mais je suis un vieux gars de RedHat qui est absent de Linux depuis un certain temps. Tout ce qui concerne apt / dpkg est nouveau pour moi.

    
posée Joe 10.08.2014 - 08:51
la source

7 réponses

77

Cela m'est arrivé juste après la mise à jour 14.10, et cela semble être dû au fait que mes environnements virtuels contiennent d'anciennes copies de /usr/bin/python2.7 qui, contrairement au nouveau binaire, n'incluent pas la version intégrée de datetime . erreur quand ils ne peuvent pas le trouver sur le disque nulle part. Le nouvel interpréteur semble l'importer sans fichier d'E / S (essayez de l'exécuter sous strace pour vérifier).

J'ai corrigé chaque environnement virtuel en l’activant et en le lançant:

$ cp /usr/bin/python2.7 $(which python2.7)
    
réponse donnée Brandon Rhodes 28.10.2014 - 11:54
la source
28

Si vous essayez d’utiliser la méthode letsencrypt après une mise à niveau, cette solution a fonctionné pour moi forums letsencrypt - Impossible d'utiliser l'importation automatique: erreur: aucun module nommé io / 2345/3

Je viens de supprimer ceci:

rm ~/.local/share/letsencrypt -R
    
réponse donnée Cody Moniz 18.11.2016 - 01:39
la source
26

Vous pouvez simplement réinitialiser virtualenv par:

cd $VIRTUAL_ENV
virtualenv .
    
réponse donnée sureshvv 03.12.2014 - 06:54
la source
2

J'ai eu le même problème et j'ai finalement décidé que ce devait être l'AWS CLI, car j'ai remarqué qu'il contenait son propre répertoire python. J'ai donc désinstallé AWS CLI et l'ai réinstallé et cela a résolu le problème:

sudo pip uninstall awscli

sudo pip install awscli

    
réponse donnée JBaczuk 14.12.2016 - 00:04
la source
0

Comme j'ai trouvé des modifications dans 14.04, vous devez donc faire cela depuis la racine:

Pour datetime uniquement:


ln -s /usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/datetime.so

Pour tous les modules:


ln -s /usr/lib/python2.7/lib-dynload/audioop.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/audioop.so
ln -s /usr/lib/python2.7/lib-dynload/_bsddb.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/_bsddb.so
ln -s /usr/lib/python2.7/lib-dynload/bz2.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/bz2.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_cn.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_cn.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_hk.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_hk.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_iso2022.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/_codecs_iso2022.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_jp.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_jp.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_kr.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_kr.so
ln -s /usr/lib/python2.7/lib-dynload/_codecs_tw.x86_64-linux-gnu.so                    /usr/lib/python2.7/lib-dynload/_codecs_tw.so
ln -s /usr/lib/python2.7/lib-dynload/crypt.x86_64-linux-gnu.so                         /usr/lib/python2.7/lib-dynload/crypt.so
ln -s /usr/lib/python2.7/lib-dynload/_csv.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/_csv.so
ln -s /usr/lib/python2.7/lib-dynload/_ctypes_test.x86_64-linux-gnu.so                  /usr/lib/python2.7/lib-dynload/_ctypes_test.so
ln -s /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_ctypes.so
ln -s /usr/lib/python2.7/lib-dynload/_curses_panel.x86_64-linux-gnu.so                 /usr/lib/python2.7/lib-dynload/_curses_panel.so
ln -s /usr/lib/python2.7/lib-dynload/_curses.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_curses.so
ln -s /usr/lib/python2.7/lib-dynload/datetime.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/datetime.so
ln -s /usr/lib/python2.7/lib-dynload/dbm.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/dbm.so
ln -s /usr/lib/python2.7/lib-dynload/_elementtree.x86_64-linux-gnu.so                  /usr/lib/python2.7/lib-dynload/_elementtree.so
ln -s /usr/lib/python2.7/lib-dynload/fpectl.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/fpectl.so
ln -s /usr/lib/python2.7/lib-dynload/future_builtins.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/future_builtins.so
ln -s /usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_hashlib.so
ln -s /usr/lib/python2.7/lib-dynload/_hotshot.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_hotshot.so
ln -s /usr/lib/python2.7/lib-dynload/_json.x86_64-linux-gnu.so                         /usr/lib/python2.7/lib-dynload/_json.so
ln -s /usr/lib/python2.7/lib-dynload/linuxaudiodev.x86_64-linux-gnu.so                 /usr/lib/python2.7/lib-dynload/linuxaudiodev.so
ln -s /usr/lib/python2.7/lib-dynload/_lsprof.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/_lsprof.so
ln -s /usr/lib/python2.7/lib-dynload/mmap.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/mmap.so
ln -s /usr/lib/python2.7/lib-dynload/_multibytecodec.x86_64-linux-gnu.so               /usr/lib/python2.7/lib-dynload/_multibytecodec.so
ln -s /usr/lib/python2.7/lib-dynload/_multiprocessing.x86_64-linux-gnu.so              /usr/lib/python2.7/lib-dynload/_multiprocessing.so
ln -s /usr/lib/python2.7/lib-dynload/nis.x86_64-linux-gnu.so                           /usr/lib/python2.7/lib-dynload/nis.so
ln -s /usr/lib/python2.7/lib-dynload/ossaudiodev.x86_64-linux-gnu.so                   /usr/lib/python2.7/lib-dynload/ossaudiodev.so
ln -s /usr/lib/python2.7/lib-dynload/parser.x86_64-linux-gnu.so                        /usr/lib/python2.7/lib-dynload/parser.so
ln -s /usr/lib/python2.7/lib-dynload/pyexpat.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/pyexpat.so
ln -s /usr/lib/python2.7/lib-dynload/readline.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/readline.so
ln -s /usr/lib/python2.7/lib-dynload/resource.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/resource.so
ln -s /usr/lib/python2.7/lib-dynload/_sqlite3.x86_64-linux-gnu.so                      /usr/lib/python2.7/lib-dynload/_sqlite3.so
ln -s /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so                          /usr/lib/python2.7/lib-dynload/_ssl.so
ln -s /usr/lib/python2.7/lib-dynload/termios.x86_64-linux-gnu.so                       /usr/lib/python2.7/lib-dynload/termios.so
ln -s /usr/lib/python2.7/lib-dynload/_testcapi.x86_64-linux-gnu.so                     /usr/lib/python2.7/lib-dynload/_testcapi.so

Aussi, si vous utilisez la copie virtuelle env

cp $(which python2.7) /opt/graphite/bin/python

à votre env.

    
réponse donnée Ilya Shevyrev 11.09.2014 - 20:14
la source
0

J'ai eu l'erreur lors de la mise à niveau d'Ubuntu 14.04 à 14.10. J'ai recréé mon virtualenv et le problème est parti. Donc, si vous travaillez avec virtualenv, vous devriez le recréer.

Cependant, si vous ne le faites pas, je suppose que la réinstallation de votre projet fonctionnera. Ne touchez aucune bibliothèque système! Il peut fonctionner pour le moment, mais peut potentiellement entraîner des problèmes avec les autres.

    
réponse donnée Doomsday 16.11.2014 - 11:06
la source
0

Cela se produit après quelques mises à jour d'Ubuntu. Ma solution préférée est

$ virtualenv --no-site-packages path/to/virtualenv/dir

Cela met à jour tout ce qui est nécessaire sans supprimer les paquets déjà installés.

Si vous avez beaucoup de virtualenv à mettre à jour, vous pouvez utiliser xargs :

$ ls ~/directory/with/virtualenvs | xargs -L1 virtualenv --no-site-packages
    
réponse donnée brandizzi 21.10.2016 - 11:43
la source

Lire d'autres questions sur les étiquettes