web-dev-qa-db-fra.com

ImportError: aucun module nommé datetime

Lorsque je mets à jour mon Ubuntu en 14.04 à partir de 12.04, cette fois, j'obtiens cette erreur:

 ImportError: No module named datetime
36
akbsmile

Cela m'est arrivé lorsque j'ai créé un virtualenv, puis mis à niveau du 12.04 au 14.04.

J'ai dû supprimer mon virtualenv et le recréer, et après cela, tout a fonctionné à nouveau.

59
erjiang

Exécutez simplement cette commande. Ça a marché comme sur des roulettes!

$ cp /usr/bin/python2.7 $(which python2.7)

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

Plus d'infos ici

38
artisare

J'ai essayé de le réinstaller par ces étapes.

1. remove the old version of venv
2. virtualenv venv
3. .venv/activate/bin
4. pip install -r requirements/ requirements.txt

Et cela fonctionne parfaitement. Merci les gars :)

10
akbsmile

il suffit de réinitialiser le virtualenv en:

cd <virtualenv-dir>
virtualenv .
8
Hasan Ramezani

Si par hasard vous rencontrez cette erreur en essayant de renouveler votre certificat LetsEncrypt (comme je l'ai fait), j'ai trouvé la solution ici:

https://askubuntu.com/a/850669/668101

Supprimez ce dossier et relancez LetsEncrypt et il recréera tous les fichiers pertinents et évitera l'erreur de ce fil.

rm ~/.local/share/letsencrypt -R
7
dug

Si vous utilisez virtualenv, sa mise à jour pourrait résoudre ce problème

virtualenv /path/to/old/virtualenv/
5
Seg-mel

Essayer...

>>> import sys
>>> sys.path
[... '/usr/local/lib/python2.7/lib-dynload',...]

si lib-dynload n'est pas inclus dans sys.path, vous ne pouvez pas import datetime

vérifie ça!

2
han058
  1. environnement virtuel clair, considérez que VIRTUAL est le nom de l'environnement virtuel

    virtualenv --clear VIRTUAL

  2. Maintenant, activez-le et installez à partir de requirements.txt

    source VIRTUAL/bin/activate pip install -r requirements.txt

1
Aneesh R S

La même chose m'est arrivée lors de la mise à niveau d'Ubuntu du 14.04 au 15.10.

Je l'ai résolu en améliorant pip, puis en supprimant et en recréant l'env virtuel:

$ easy_install --upgrade pip
$ rmvirtualenv <my_virtual_env>
$ mkvirtualenv <my_virtual_env>

(J'utilise virtualenvwrapper)

1
Walter B

Si vous rencontrez un problème d'importation de datetime à l'aide d'IntelliJ PyCharm ou d'Idea et à partir de la console/du terminal, cela fonctionne correctement, vous devez simplement dupliquer/recréer les configurations en cours d'exécution.

0
Artur Samigullin