【问题标题】:ImportError: No module named datetimeImportError:没有名为 datetime 的模块
【发布时间】:2020-12-28 02:31:39
【问题描述】:

当我将我的 Ubuntu 从 12.04 升级到 14.04 时,这次我收到了这个错误:

 ImportError: No module named datetime

【问题讨论】:

  • 你在做什么的时候遇到这个错误?
  • 是的,在我升级它的时候,并且在它完成升级之后,错误仍然存​​在。
  • 我使用的版本是python 2.7.6

标签: python ubuntu-12.04 ubuntu-14.04


【解决方案1】:

这发生在我创建 virtualenv 然后从 12.04 升级到 14.04 时。

我不得不删除我的 virtualenv 并重新创建它,然后一切都恢复正常了。

【讨论】:

  • 我在 apt-get dist-upgrade 我的 Debian 之后遇到了同样的问题。解决方案是删除 virtualenv 并重新创建它。
  • 感谢您的提示!只需运行 mkvirtualenv $my_venv_name 即可为我解决。
  • 从 14.04 升级到 16.04 后我也遇到了同样的情况
【解决方案2】:

只需运行此命令。它就像一个魅力!

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

这只是在 14.10 更新后发生在我身上,这似乎是因为我的虚拟环境有 /usr/bin/python2.7 的旧副本 - 与新的二进制文件不同 - 不包括 datetime 内置,所以得到一个当他们无法在任何地方的磁盘上找到它时出错。新的解释器似乎在没有任何文件 I/O 的情况下导入它(尝试在 strace 下运行它来检查)。

More info here

【讨论】:

  • 我更进一步,“rm venv/bin/python*”,然后用“virtualenv venv”重新初始化。与重建整个 venv 相比,破坏性更小。
  • 你值得喝杯咖啡!谢谢:) - 也是由于在不接触虚拟环境的情况下将底层Ubuntu 14.04 升级到Ubuntu 16.04.1 造成的。
【解决方案3】:

我尝试通过这些步骤重新安装它。

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

而且效果很好。谢谢大家:)

【讨论】:

    【解决方案4】:

    只需通过以下方式重新初始化 virtualenv:

    cd <virtualenv-dir>
    virtualenv .
    

    【讨论】:

    • 这对我有用,只需进行一项更改。 “虚拟环境。”给了我错误:'IOError: [Errno 40] Too many levels of symbolic links' 所以我做了:'rm bin/python*' 然后是 'virtualenv 。成功了。
    【解决方案5】:

    如果您在尝试更新 LetsEncrypt 证书时偶然遇到此错误(就像我一样),我在这里找到了解决方案:

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

    删除此文件夹并重新运行 LetsEncrypt,它将重新创建所有相关文件并避免来自该线程的错误。

    rm ~/.local/share/letsencrypt -R
    

    【讨论】:

    • 好提示!谢谢(你的)信息!!唯一的问题是“线程”这个词并不真正适用于 StackOverflow,因为这不是一个讨论论坛,而是一个问答网站 :) 否则,这真的很有帮助!谢谢!
    【解决方案6】:

    如果你使用virtualenv,更新它可能会解决这个问题

    virtualenv /path/to/old/virtualenv/
    

    【讨论】:

      【解决方案7】:

      试试……

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

      如果 lib-dynload 未包含在 sys.path 中,则不能import datetime

      检查一下!

      【讨论】:

      • 必须创建 lib-dynload 目录并将 Python-2.7.*/build/lib.linux-***-2.7 的粘贴内容复制到其中
      【解决方案8】:

      在将 Ubuntu 从 14.04 升级到 15.10 时,我也遇到了同样的情况。

      我通过升级 pip 然后删除并重新创建虚拟环境来解决它:

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

      (我使用 virtualenvwrapper)

      【讨论】:

        【解决方案9】:
        1. 清除虚拟环境,认为 VIRTUAL 是虚拟环境的名称

          virtualenv --clear 虚拟

        2. 现在激活它并从 requirements.txt 安装

          来源 VIRTUAL/bin/activate pip install -r requirements.txt

        【讨论】:

          【解决方案10】:

          如果您使用 IntelliJ PyCharm 或 Idea 遇到日期时间导入问题,并且从控制台/终端运行正常,您应该复制/重新创建正在运行的配置。

          【讨论】:

            【解决方案11】:

            我在 LetsEncrypt 尝试更新时遇到了这个错误,为了解决这个问题,我不得不返回letsencrypt站点并重新安装 certbot,因为他们改变了它在 Ubuntu 上的工作方式。

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

            这是我最终运行的命令,您的命令可能不同。

            snap 没有安装在我的 Ubuntu 实例中

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

            删除旧的 certbot

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

            使“certbot”命令与旧配置一起工作

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

            运行几个测试

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

            实际更新重启服务器

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

            更新定时任务

            然后我需要更新我的 cronjob,以便它使用 sudo certbot renew 而不是我之前使用的 certbot 的完整路径。

            crontab -e
            

            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
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-03-11
              • 2012-12-07
              • 2012-05-23
              • 2019-07-29
              • 2015-07-04
              • 2014-03-15
              • 2017-12-29
              • 2014-09-12
              相关资源
              最近更新 更多