ImportError: No module named datetime

Question:

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

 ImportError: No module named datetime
Asked By: akbsmile

||

Answers:

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 🙂

Answered By: akbsmile

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!

Answered By: han058

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.

Answered By: erjiang

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

Answered By: artisare

If you use virtualenv, updating it might solve this issue

virtualenv /path/to/old/virtualenv/
Answered By: Seg-mel

just reinitialize the virtualenv by:

cd <virtualenv-dir>
virtualenv .
Answered By: Hasan Ramezani

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)

Answered By: Walter B
  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

Answered By: Aneesh R S

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
Answered By: dug

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.

Answered By: Artur Samigullin

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
Answered By: Richard Kersey