Ubuntuを12.04から14.04にアップグレードすると、今回は次のエラーが表示されます。
ImportError: No module named datetime
これは、virtualenvを作成してから12.04から14.04にアップグレードしたときに起こりました。
Virtualenvを削除して再作成する必要があり、それを行った後、すべてが再び機能しました。
このコマンドを実行するだけです。それは魅力のように働いた!
$ cp /usr/bin/python2.7 $(which python2.7)
これは、14.10の更新後に起こったもので、仮想環境には/usr/bin/python2.7
の古いコピーがあるため、新しいバイナリとは異なり、datetime
ビルトインが含まれていないようです。ディスク上のどこにも見つからない場合はエラーが発生します。新しいインタープリターはファイルI/Oなしでインポートするようです(確認するためにstraceで実行してみてください)。
これらの手順で再インストールを試みました。
1. remove the old version of venv
2. virtualenv venv
3. .venv/activate/bin
4. pip install -r requirements/ requirements.txt
そして、それは完全に機能します。みんなありがとう :)
次の方法でvirtualenvを再初期化します。
cd <virtualenv-dir>
virtualenv .
LetsEncrypt証明書を更新しようとしたときに偶然このエラーに遭遇した場合(私がしたように)、ここで解決策を見つけました:
https://askubuntu.com/a/850669/668101
このフォルダーを削除してLetsEncryptを再実行すると、すべての関連ファイルが再作成され、このスレッドからのエラーが回避されます。
rm ~/.local/share/letsencrypt -R
virtualenv
を使用している場合、更新するとこの問題が解決する場合があります
virtualenv /path/to/old/virtualenv/
試してみてください...
>>> import sys
>>> sys.path
[... '/usr/local/lib/python2.7/lib-dynload',...]
lib-dynloadがsys.pathに含まれていない場合、import datetime
確認してください!
仮想環境をクリアし、VIRTUALが仮想環境の名前であることを考慮
virtualenv --clear VIRTUAL
それを有効にして、requirements.txtからインストールします
ソースVIRTUAL/bin/activate pip install -r requirements.txt
Ubuntuを14.04から15.10にアップグレードすると、同じことが起こりました。
Pipをアップグレードしてから、仮想envを削除して再作成することで解決しました。
$ easy_install --upgrade pip
$ rmvirtualenv <my_virtual_env>
$ mkvirtualenv <my_virtual_env>
(私はvirtualenvwrapperを使用しています)
IntelliJ PyCharmまたはIdeaを使用して日時のインポートの問題に直面し、コンソール/ターミナルから正常に動作する場合は、実行中の構成を複製/再作成する必要があります。