2014-09-25 15 views
30

Kiedy mogę zaktualizować Ubuntu do 14,04 z 12,04, tym razem mam ten błąd:ImportError: No moduł o nazwie datetime

ImportError: No module named datetime 
+1

masz ten błąd, robiąc co? – g4ur4v

+0

której wersji python używasz? –

+0

Tak, podczas aktualizacji, a także po zakończeniu aktualizacji, błąd nadal występuje. – akbsmile

Odpowiedz

55

Stało się to, gdy utworzyłem virtualenv, a następnie uaktualniono go z 12.04 do 14.04.

Musiałem usunąć mój virtualenv i odtworzyć go, a po wykonaniu tego, wszystko działało ponownie.

+3

Miałem ten sam problem po tym, jak zrobiłem apt-get dist-upgrade mojego Debiana. Rozwiązaniem było usunięcie virtualenv i odtworzenie go. –

+2

Dzięki za podpowiedź! Po prostu uruchomienie 'mkvirtualenv $ my_venv_name' rozwiązało to dla mnie. – Chriki

+2

samo stało się dla mnie po aktualizacji z 14.04 na 16.04 –

8

próbowałem ponownie zainstalować go przez tych etapów.

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

I działa idealnie. Dzięki chłopaki :)

2

try ...

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

jeśli lib-dynload nieuwzględnione w sys.path, nie można import datetime

sprawdź to!

+0

Ohh Ic. Dziękuję Ci! :) – akbsmile

34

Po prostu uruchom to polecenie. To działało jak czar!

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

To właśnie zdarzyło mi się po aktualizacji 14.10, i wydaje się być fakt, że moje wirtualne środowisko mają stare kopie /usr/bin/python2.7 że - w przeciwieństwie do nowego pliku binarnego - nie zawierają datetime wbudowany, a więc uzyskać błąd, gdy nie mogą go znaleźć nigdzie na dysku. Nowy interpreter wydaje się importować go bez żadnych operacji wejścia/wyjścia pliku (spróbuj go uruchomić pod kontrolą strace, aby sprawdzić).

More info here

+0

Dzięki, to było pomocne w systemie Ubuntu. – baltasvejas

+1

Poszedłem o krok dalej, "rm venv/bin/python *", a następnie ponownie zainicjalizuj za pomocą "virtualenv venv". Mniej niszczycielskie w porównaniu z odbudową całego venva. – kevinf

+3

** Zasługujesz na kawę! Dzięki:) ** - Wynika również z uaktualnienia ukrytego 'Ubuntu 14.04' do' Ubuntu 16.04.1' bez dotykania środowiska wirtualnego. – Flatron

4

Jeśli używasz virtualenv aktualizowanie może rozwiązać ten problem

virtualenv /path/to/old/virtualenv/ 
7

prostu ponownie zainicjować virtualenv przez:

cd <virtualenv-dir> 
virtualenv . 
+2

To zadziałało dla mnie z jedną zmianą. "virtualenv." dał mi błąd: "IOError: [Errno 40] Zbyt wiele poziomów dowiązań symbolicznych", więc zrobiłem: "rm bin/python *", a następnie "virtualenv". udało się. – saschwarz

0

I uaktualniony z Ubuntu 12.04 do 14.04 i this answer pomógł mnie rozwiązać:

Instalacja zależności:

$ sudo apt-get build-dep python-imaging 

Tworzenie dowiązania symbolicznego jak sugeruje mrudult:

$ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype 

Install Pillow jak zwykle:

$ pip install Pillow 
0

samo zdarzyło mi na uaktualnieniu Ubuntu od 14,04 do 15.10.

że rozwiązany poprzez podnoszenie PIP i następnie usunięcie i ponowne env wirtualnego:

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

(użyć virtualenvwrapper)

1
  1. wyraźne wirtualnego env, za wirtualnego jest nazwą wirtualnego środowisko

    virtualenv --clear VIRTUAL

  2. Teraz go uaktywnić i zainstalować z requirements.txt

    źródło VIRTUAL/bin/aktywować pip zainstalować -r requirements.txt

6

Jeśli przez przypadek natknąć się ten błąd, starając się odnowić certyfikat LetsEncrypt (tak jak ja) znalazłem rozwiązanie tutaj:

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

usunąć ten folder i uruchom ponownie LetsEncrypt i będzie odtworzyć wszystkie odpowiednie pliki i uniknąć błędu fro m ten wątek.

rm ~/.local/share/letsencrypt -R 
+1

Dobra wskazówka! Dzięki za informację!! Jedyną rzeczą jest to, że termin "wątek" tak naprawdę nie ma zastosowania do StackOverflow, ponieważ nie jest to forum dyskusyjne, ale strona z pytaniami i odpowiedziami :) W przeciwnym razie było to naprawdę pomocne! Dzięki! –

0

jeśli obliczu problemu import datetime przy użyciu IntelliJ pycharm lub pomysł i od konsoli/terminalu działa prawidłowo, należy po prostu powielać/odtworzyć uruchomione konfiguracje.

Powiązane problemy