当我从12.04将Ubuntu升级到14.04时,这次我收到此错误:
ImportError: No module named datetime
答案 0 :(得分:59)
当我创建virtualenv然后从12.04升级到14.04时,这发生在我身上。
我不得不删除我的virtualenv并重新创建它,在这之后,一切都恢复了。
答案 1 :(得分:37)
只需运行此命令即可。它就像一个魅力!
$ cp /usr/bin/python2.7 $(which python2.7)
这在14.10更新后发生在我身上,似乎是因为我的虚拟环境中有/usr/bin/python2.7
的旧副本 - 与新二进制文件不同 - 不包含内置的datetime
,所以当他们无法在磁盘上找到它时会出现错误。新的解释器似乎导入它没有任何文件I / O(尝试在strace下运行它来检查)。
答案 2 :(得分:10)
我试图通过这些步骤重新安装它。
1. remove the old version of venv
2. virtualenv venv
3. .venv/activate/bin
4. pip install -r requirements/ requirements.txt
它完美无缺。谢谢你们:))
答案 3 :(得分:8)
通过以下方式重新初始化virtualenv:
cd <virtualenv-dir>
virtualenv .
答案 4 :(得分:7)
如果您在尝试续订LetsEncrypt证书时遇到此错误(就像我一样),我在此处找到了解决方案:
https://askubuntu.com/a/850669/668101
删除此文件夹并重新运行LetsEncrypt,它将重新创建所有相关文件并避免此线程出错。
rm ~/.local/share/letsencrypt -R
答案 5 :(得分:5)
如果您使用virtualenv
,更新它可能会解决此问题
virtualenv /path/to/old/virtualenv/
答案 6 :(得分:2)
...试
>>> import sys
>>> sys.path
[... '/usr/local/lib/python2.7/lib-dynload',...]
如果lib-dynload未包含在sys.path中,则不能import datetime
答案 7 :(得分:1)
将Ubuntu从14.04升级到15.10也是如此。
我通过升级pip然后删除并重新创建虚拟环境来解决它:
$ easy_install --upgrade pip
$ rmvirtualenv <my_virtual_env>
$ mkvirtualenv <my_virtual_env>
(我使用virtualenvwrapper)
答案 8 :(得分:1)
清除虚拟环境,考虑VIRTUAL是虚拟环境的名称
virtualenv --clear VIRTUAL
现在激活它并从requirements.txt安装
source VIRTUAL / bin / activate pip install -r requirements.txt
答案 9 :(得分:0)
如果您使用IntelliJ PyCharm或Idea以及从控制台/终端面对日期时间导入问题,它可以正常工作,您应该只复制/重新创建运行配置。
答案 10 :(得分:0)
我在尝试更新 LetsEncrypt 时遇到了这个错误,为了解决这个问题,我不得不回到 letencrypt 站点并重新安装 certbot,因为他们改变了它在 Ubuntu 上的工作方式。
https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx
这是我最终运行的命令,您的命令可能会有所不同。
static ColorImage Circulo(ColorImage img, int radius) {
for (int x=0; x < img.getWidth(); x++ ) {
for(int y=0; y < img.getHeight(); y++) {
if((x - (img.getWidth()/2)) * (x - (img.getWidth()/2)) + (y - (img.getHeight()/2) )* (y - (img.getHeight()/2)) <= (radius*radius)) {
img.setColor(x, y, img.getColor(x, y));
}else {
Color c = new Color (255, 255, 255);
img.setColor(x, y, c );
}
}
}
return img;
}
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx
sudo certbot renew --dry-run
然后我需要更新我的 cronjob,以便它使用 sudo certbot renew
sudo /opt/bitnami/ctlscript.sh restart nginx
而不是我之前使用的 certbot 的完整路径。
sudo certbot renew
crontab 的内容
crontab -e