Django在python版本之间运行不同?

时间:2016-04-12 08:33:06

标签: python django python-3.x heroku

今天我遇到了使用虚拟环境运行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配置有关。但是我很好奇为什么我首先得到一个错误?

1 个答案:

答案 0 :(得分:0)

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

src/proj错过了__init__.py。添加它修复了python2的错误。来自python3.3这不是一项要求

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