Lorsque je mets à jour mon Ubuntu en 14.04 à partir de 12.04, cette fois, j'obtiens cette erreur:
ImportError: No module named datetime
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.
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).
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 :)
il suffit de réinitialiser le virtualenv en:
cd <virtualenv-dir>
virtualenv .
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
Si vous utilisez virtualenv
, sa mise à jour pourrait résoudre ce problème
virtualenv /path/to/old/virtualenv/
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!
environnement virtuel clair, considérez que VIRTUAL est le nom de l'environnement virtuel
virtualenv --clear VIRTUAL
Maintenant, activez-le et installez à partir de requirements.txt
source VIRTUAL/bin/activate pip install -r requirements.txt
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)
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.