akbsmile
akbsmile

Reputation: 1139

ImportError: No module named datetime

When I upgrade my Ubuntu into 14.04 from 12.04, this time I get this error:

 ImportError: No module named datetime

Upvotes: 40

Views: 50558

Answers (11)

Richard
Richard

Reputation: 5880

I ran across this error with LetsEncrypt trying to renew and in order to fix I had to go back to the letsencrypt site and reinstall certbot because they have changed how it works on Ubuntu.

https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx

Here are the commands I ended up running, your commands may be different.

snap was not installed in my Ubuntu instance

sudo apt install snapd 
sudo snap install core; sudo snap refresh core

remove the old certbot

sudo apt-get remove certbot
sudo snap install --classic certbot

make the "certbot" command work with old config

sudo ln -s /snap/bin/certbot /usr/bin/certbot

run a couple tests

sudo certbot --nginx
sudo certbot renew --dry-run

Actually renew and restart server

sudo certbot renew
sudo /opt/bitnami/ctlscript.sh restart nginx

Update cronjob

Then I needed to update my cronjob so that it used sudo certbot renew instead of the full path to certbot that I was using before.

crontab -e

contents of crontab

42 3,15 * * * sudo certbot renew --quiet --no-self-upgrade
24 1,18 * * * sudo certbot renew --quiet --no-self-upgrade
5 4 * * 7 sudo /opt/bitnami/ctlscript.sh restart nginx

Upvotes: 0

Artur Samigullin
Artur Samigullin

Reputation: 1

If you face datetime import issue using IntelliJ PyCharm or Idea and from Console/Terminal it works fine, you should just duplicate/recreate running configurations.

Upvotes: 0

dug
dug

Reputation: 340

If by chance you come across this error while trying to renew your LetsEncrypt certificate (like I did) I found the solution here:

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

Remove this folder and rerun LetsEncrypt and it will recreate all the relevant files and avoid the error from this thread.

rm ~/.local/share/letsencrypt -R

Upvotes: 8

Aneesh R S
Aneesh R S

Reputation: 3827

  1. clear virtual env, consider VIRTUAL is the name of the virtual environment

    virtualenv --clear VIRTUAL

  2. Now activate it and install from requirements.txt

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

Upvotes: 1

Walter B
Walter B

Reputation: 735

Same happened to me on upgrading Ubuntu from 14.04 to 15.10.

I solved it by upgrading pip and then removing and recreating the virtual env:

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

(I use virtualenvwrapper)

Upvotes: 1

Hasan Ramezani
Hasan Ramezani

Reputation: 5194

just reinitialize the virtualenv by:

cd <virtualenv-dir>
virtualenv .

Upvotes: 10

artisare
artisare

Reputation: 501

Just run this command. It worked like a charm!

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

This just happened to me after the 14.10 update, and it seems to be because my virtual environments have old copies of /usr/bin/python2.7 that — unlike the new binary — do not include datetime built-in, and so get an error when they cannot find it on disk anywhere. The new interpreter seems to import it without any file I/O (try running it under strace to check).

More info here

Upvotes: 40

Seg-mel
Seg-mel

Reputation: 63

If you use virtualenv, updating it might solve this issue

virtualenv /path/to/old/virtualenv/

Upvotes: 6

erjiang
erjiang

Reputation: 45677

This happened to me when I created a virtualenv and then upgraded from 12.04 to 14.04.

I had to delete my virtualenv and recreate it, and after doing that, everything worked again.

Upvotes: 61

han058
han058

Reputation: 908

Try...

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

if lib-dynload not included in sys.path, You could not import datetime

check it!

Upvotes: 3

akbsmile
akbsmile

Reputation: 1139

I tried to re-install it by these steps.

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

And it works perfectly. Thanks guys :)

Upvotes: 10

Related Questions