使用PM2管理Django应用遇报错:script not found or unable to stat: myapp
问题分析
- 执行
pm2 start myapp时,PM2会在当前目录查找名为myapp的可执行脚本或配置文件,但你的Django项目中不存在该文件,因此触发找不到脚本的错误。 - Django应用无法直接通过项目名称启动,必须通过其专属启动入口(如
manage.py runserver)或搭配WSGI服务器(如Gunicorn,生产环境推荐)来启动。
正确操作步骤
方式一:开发环境用PM2启动Django内置服务器
- 切换到Django项目根目录(包含
manage.py的目录) - 执行启动命令:
pm2 start python --name "myapp" -- manage.py runserver 0.0.0.0:8000
--name "myapp":给进程命名,便于后续管理0.0.0.0:8000:允许外部访问服务,若仅本地使用可改为127.0.0.1:8000
- 常用管理命令:
- 查看进程状态:
pm2 status - 重启进程:
pm2 restart myapp - 停止进程:
pm2 stop myapp - 查看日志:
pm2 logs myapp
- 查看进程状态:
方式二:生产环境用PM2搭配Gunicorn启动(推荐)
- 安装Gunicorn:
pip install gunicorn
- 切换到Django项目根目录,确认WSGI配置路径(通常为
项目名/wsgi.py,例如myapp/wsgi.py) - 执行启动命令:
pm2 start gunicorn --name "myapp" --bind 0.0.0.0:8000 myapp.wsgi:application
--bind 0.0.0.0:8000:绑定服务的访问地址和端口myapp.wsgi:application:指定Django的WSGI应用入口
- 可选:使用PM2配置文件管理(更灵活)
在项目根目录创建ecosystem.config.js文件:
module.exports = { apps: [{ name: 'myapp', script: 'gunicorn', args: 'myapp.wsgi:application --bind 0.0.0.0:8000', interpreter: 'none', env: { PYTHONPATH: '/你的项目绝对路径', DJANGO_SETTINGS_MODULE: 'myapp.settings' } }] };
启动时直接运行:
pm2 start ecosystem.config.js
内容的提问来源于stack exchange,提问作者Wael Chaabane
相关产品推荐
相关产品推荐

