【问题标题】:Django runs differently between python version?Django 在 python 版本之间的运行方式不同?
【发布时间】:2016-04-12 08:33:05
【问题描述】:

今天我遇到了在虚拟环境中运行 Django 应用程序的有线错误。

应用程序在 python-3.5.1 下使用 Procfile 在本地和 Heroku 下均无错误地运行

web: gunicorn --pythonpath='src/' proj.wsgi:application --log-file -

而我的项目结构是:

```

.
├── LICENSE.txt
├── Procfile
├── README.md
├── db.sqlite3
├── docs
├── env3
├── env
├── logs
├── manifest.yml
├── requirements
├── requirements.txt
├── run.sh
├── runtime.txt
├── site
└── src/proj
    ├── logger.py
    ├── settings
    │   ├── __init__.py
    │   ├── base.py
    │   ├── development.py
    │   └── production.py
    ├── urls.py
    ├── views.py
    ├── wsgi.py

```

但是当我使用 python 2.7.11 运行它时,出现以下错误

ImportError: No module named proj.settings.development

我很容易猜到错误与 pythonpath 配置有关。但是我很好奇为什么首先我会收到错误消息?

【问题讨论】:

    标签: python django python-3.x heroku


    【解决方案1】:

    现已修复!原因是由于默认的 django 结构被重写,每个嵌套文件夹包含模块都需要一个__init__.py

    src/proj 缺少__init__.py。添加它修复了python2的错误。来自python3.3,这不是必需的

    参考PEP420https://www.python.org/dev/peps/pep-0420/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 2015-05-30
      • 2019-04-26
      • 1970-01-01
      相关资源
      最近更新 更多