Python: nenhum módulo chamado datetime?

51

SO: Ubuntu 14.04 LTS

Python: 2.7.6

Minha instalação do Gourmet Recipe Manager de repente parou de carregar. Quando eu o executo em uma janela de terminal, recebo o seguinte no final do traceback:

import datetime as dt
ImportError: No module named datetime

Até onde eu sei, nada foi alterado e minha instalação do Python está atualizada. Ele simplesmente parou de trabalhar ontem. Eu certamente aprecio uma boa abordagem para diagnosticar e corrigir esse problema!

Atualização: obrigado a todos que responderam!

Tim, me desculpe se eu fiz esta pergunta no lugar errado. Por favor, descreva como ser um cara novo simplesmente seguindo os links do site do Ubuntu.

TheSchwa, tentei sua sugestão e recebi a mesma mensagem de erro acima.

muru, o pacote parece estar instalado, mas não tenho idéia se está instalado / configurado corretamente. Como posso descobrir?

Sinto muito por todas as perguntas, mas eu sou um cara da RedHat que está longe do Linux há algum tempo. Todo o material do apt / dpkg é novo para mim.

    
por Joe 10.08.2014 / 08:51

7 respostas

76

Isso só aconteceu comigo depois da atualização 14.10, e parece que meus ambientes virtuais têm cópias antigas de /usr/bin/python2.7 que - ao contrário do novo binário - não incluem datetime embutido e, portanto, obter um erro quando eles não podem encontrá-lo no disco em qualquer lugar. O novo intérprete parece importá-lo sem qualquer arquivo I / O (tente executá-lo em strace para verificar).

Eu consertei cada ambiente virtual ativando-o e executando:

$ cp /usr/bin/python2.7 $(which python2.7)
    
por Brandon Rhodes 28.10.2014 / 11:54
28

Se você está tentando usar o letsencrypt após uma atualização, esta solução funcionou para mim forums do letsencrypt - Não é possível usar a importação automática: erro: nenhum módulo denominado io / 2345/3

Eu só tive que excluir isso:

rm ~/.local/share/letsencrypt -R
    
por Cody Moniz 18.11.2016 / 01:39
25

Você pode apenas reinicializar o virtualenv por:

cd $VIRTUAL_ENV
virtualenv .
    
por sureshvv 03.12.2014 / 06:54
2

Eu tive o mesmo problema e finalmente decidi que deveria ser o AWS CLI porque notei que ele tinha seu próprio diretório python. Então eu desinstalei o AWS CLI e o reinstalei e isso resolveu o problema:

sudo pip uninstall awscli

sudo pip install awscli

    
por JBaczuk 14.12.2016 / 00:04
0

Como eu encontrei algumas mudanças em 14.04, você precisa fazer isso a partir do root:

Somente para datetime:


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

Para todos os módulos:


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

Além disso, se você usar a cópia de env virtual

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

para o seu env.

    
por Ilya Shevyrev 11.09.2014 / 20:14
0

Recebi o erro quando atualizei do Ubuntu 14.04 para 14.10. Eu recriou meu virtualenv e o problema foi embora. Então, se você está trabalhando com um virtualenv, você deve recriá-lo.

No entanto, se você não fizer isso, suponho que a reinstalação do seu projeto funcionará. Não toque em nenhuma biblioteca do sistema! Pode funcionar por enquanto, mas poderá levar a problemas com outras pessoas.

    
por Doomsday 16.11.2014 / 11:06
0

Isso acontece depois de alguns upgrades do Ubuntu. Minha solução favorita é

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

Isso atualiza tudo o que é necessário sem remover os pacotes já instalados.

Se você tiver muitos virtualenvs para atualizar, use xargs :

$ ls ~/directory/with/virtualenvs | xargs -L1 virtualenv --no-site-packages
    
por brandizzi 21.10.2016 / 11:43

Tags