Python 不能';找不到部署Heroku的WSGI模块

Python 不能';找不到部署Heroku的WSGI模块,python,django,heroku,wsgi,Python,Django,Heroku,Wsgi,正在尝试使用教程部署我的应用程序。有一条ModuleNotFoundError:没有名为“radio.wsgi”的模块消息 2019-08-21T08:08:21.409841+00:00 app[web.1]: __import__(module) 2019-08-21T08:08:21.409849+00:00 app[web.1]: ModuleNotFoundError: No module named 'radio.wsgi' 2019-08-21T08:08:21.409960+00

正在尝试使用教程部署我的应用程序。有一条
ModuleNotFoundError:没有名为“radio.wsgi”的模块
消息

2019-08-21T08:08:21.409841+00:00 app[web.1]: __import__(module)
2019-08-21T08:08:21.409849+00:00 app[web.1]: ModuleNotFoundError: No module named 'radio.wsgi'
2019-08-21T08:08:21.409960+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [10] [INFO] Worker exiting (pid: 10)
2019-08-21T08:08:21.441211+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Shutting down: Master
2019-08-21T08:08:21.441415+00:00 app[web.1]: [2019-08-21 08:08:21 +0000] [4] [INFO] Reason: Worker failed to boot.
在其他一些问题中,人们建议使用
python manage.py run\u gunicorn
,但我有
未知命令:“run\u gunicorn”

程序文件:

web: gunicorn radio.wsgi --log-file -
wsgi.py

导入操作系统
从django.core.wsgi导入获取\u wsgi\u应用程序
os.environ.setdefault('DJANGO\u SETTINGS\u MODULE','radio.SETTINGS')
application=get\u wsgi\u application()
仅在这些文件中提到WSGI

requirements.txt

dj-database-url==0.5.0
Django==2.2.4
gunicorn==19.9.0
lxml==4.4.1
psycopg2-binary==2.8.3
pytz==2019.2
sqlparse==0.3.0
whitenoise==4.1.3
这是项目结构

├── radio
│   ├── db.sqlite3
│   ├── manage.py
│   ├── player
│   ├── radio
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   ├── setup.py
│   └── static
├── README.md
├── .gitignore
├── requirements.txt
├── runtime.txt
└── Procfile

Heroku希望
Procfile
位于项目根目录中。如果
manage.py
也位于项目根目录中,则部署Django应用程序最容易。例如,如果项目布局为:

├── db.sqlite3
├── manage.py
├── player
├── radio
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── setup.py
├── static
├── README.md
├── .gitignore
├── requirements.txt
├── runtime.txt
└── Procfile
然后您可以运行:

web: gunicorn radio.wsgi
在您的情况下,您的Django项目位于
radio
directoy中。如果不想更改项目布局,则需要向python路径添加
radio
,以便python导入工作:

web: gunicorn --pythonpath radio radio.wsgi

通过下载使用
heroku登录
从终端登录后,您可以通过以下方式使用
git
heroku
上部署:

git init
git add .
heroku create <app_name> --region <region_name>
git commit -am "SOME MESSAGE"
heroku config:set DEBUG_COLLECTSTATIC=1
heroku ps:scale web=1    // (optional)
git push heroku master

怎么样
mv Procfile radio/
?如果您查看,您将看到Procfile、runtime.txt和requirements.txt与manage.py处于同一级别,后者是项目存储库的根。@WaketZheng,no。“没有web进程在运行”@dirkgroten,我怎么能像这样重构项目?当我初始化播放器应用程序时,它会自动放在这里什么是“当我初始化播放器应用程序时”?requirements.txt、runtime.txt、README.md。。。您手动添加的所有文件都位于错误的目录中。只需将所有这些文件移动到你的top
radio
目录中即可。实际上,您在初始化git存储库时可能做错了
radio
应该是存储库,而不是包含
radio
的目录。
   radio
   ├── db.sqlite3
   ├── manage.py
   ├── player
   ├── radio
   │   ├── __init__.py
   │   ├── settings.py
   │   ├── urls.py
   │   └── wsgi.py
   ├── setup.py
   ├── static
   ├── README.md
   ├── requirements.txt
   ├── runtime.txt
   └── Procfile