版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuyexiaohan/article/details/82620364
1.问题描述
在服务器上部署Django项目时,在配置好虚拟环境、数据库等操作,在项目目录下执行运行服务器命令时:
python3 manage.py runserver 0.0.0.0:8000
报错:
FileNotFoundError: [Errno 2] No such file or directory: 'manage.py'
2.问题分析
查询了网上的多中说法,多是说命令没有在项目文件(即manage.py所在文件夹)下运行。但实际情况,我的命令确实是将目录切换到项目文件夹中运行的。否则也不将数据库的表建成功。
python3 manage.py makemigrations
python3 manage.py migrate
以上两个命令都运行成功。
所以问题应该不是这个,所以继续找原因,发现以下两点:
服务器中存放项目的文件名,需要与本地实际运行的文件名一致。因为django项目生成时,是以这个根文件名,定义了一些变量或参数的;
在manage.py文件的头文件注释中,本地和服务器的虚拟环境可能配置的不一样,所以需要针对服务器的虚拟地址进行修改。
举例说明:
# 本地manage.py文件的第一行代码是:
#!/usr/bin/env/python3
# 服务器manage.py文件的第一行代码应修改为:
#!/root/.virtualenvs/django_01/bin/python3
这样再运行python3 manage.py runserver 0.0.0.0:8000
命令,服务器就可以正常启动了。