【问题标题】:App Deployment: Django not installing on server- AttributeError: 'module' object has no attribute 'lru_cache'应用程序部署:Django 未安装在服务器上 - AttributeError:“模块”对象没有属性“lru_cache”
【发布时间】:2017-12-05 18:37:24
【问题描述】:

我正在尝试部署 Django 应用程序,但由于某种原因,我不断收到此错误。在我看来,Django 没有安装,但安装时也会出错。感谢您对此的帮助。我在 Amazon EC2 上部署


(venv) ubuntu@ip----:~/quotes$ pip install Django
收集 Django
  使用缓存的 Django-2.0.tar.gz
    命令 python setup.py egg_info 的完整输出:
    回溯(最近一次通话最后):
      文件“”,第 1 行,在
      文件“/tmp/pip-build-ceP6se/Django/setup.py”,第 32 行,在
        版本 = __import__('django').get_version()
      文件“django/__init__.py”,第 1 行,在
        从 django.utils.version 导入 get_version
      文件“django/utils/version.py”,第 61 行,在
        @functools.lru_cache()
    AttributeError:“模块”对象没有属性“lru_cache”

    --------------------------------------
命令“python setup.py egg_info”在/tmp/pip-build-ceP6se/Django/中失败,错误代码为1

【问题讨论】:

  • 我已经解决了这个问题。问题是我需要将我的 Django 版本从 2.7 > 1.11 降级,因为我使用的是旧版本的 python。

标签: web-deployment


【解决方案1】:

Django 已停止对 Python 2 版本的支持,您仍然可以尝试使用以下代码安装 1.11 版本。

pip install Django==1.11

【讨论】:

  • 最好是固定版本以便使用最新的 1.11,例如:django >=1.11,<2.0
  • 这不是一个真正的答案,而且到处都是这些错误! OP 需要一种方法来安装 django 2 而不是旧版本
【解决方案2】:

根据 django 2.0 发行说明,Django 1.11.x 系列是最后一个支持 Python 2.7 (Check it here)

所以你可以选择使用旧版本的 Django,然后用这个命令安装它:

pip install 'Django<2'

但如果您决定使用 Django>=2.0 构建您的项目,那么您应该以这种方式使用 python 3.4 或更高版本创建虚拟环境:

sudo apt-get update
sudo apt-get install python3 python3-pip
sudo -H pip3 install virtualenv
mkdir ~/myproject
cd ~/myproject
virtualenv -p `which python3` myprojectenv
source ~/myproject/myprojectenv/bin/activate
python -V

它应该输出如下内容:

Python 3.X.Y

现在您可以安装最新版本的 Django,而不会出现任何错误:

pip install Django

祝你好运,

【讨论】:

  • 是的,感谢您的回复。我之前通过退回到 Django 1.11 解决了这个问题。这样做之后,它起作用了。
猜你喜欢
  • 2018-06-10
  • 2018-07-14
  • 2019-01-03
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多