Django新手创建项目后运行报错:缺少必需位置参数,求解决方法
解决Django startproject "缺少必需位置参数" 报错问题
嘿,我来帮你搞定这个问题!你同时装了Python2.7+Django1.11和Python3.5+Django2.0,多版本环境很容易出现这类命令调用混淆的情况,咱们一步步排查解决:
一、先确认当前Django版本是否正确关联Python3.5
先在命令行跑这两个命令,看看输出的版本是不是你要的Django2.0:
django-admin --version python -m django --version
如果这两个输出不一样,说明你的django-admin别名没生效,可能还是调用了Python2.7里的Django1.11——这时候用python -m django的方式会更靠谱,直接绑定你python别名指向的Python3.5环境。
二、换个更稳妥的命令创建项目
如果上面的版本不一致,或者哪怕一致但还是报错,别纠结django-admin别名了,直接用Python模块调用的方式创建项目:
python -m django startproject Returner
这种方式完全绕开了别名可能带来的问题,直接用你设置的python(也就是3.5)来运行对应的Django,绝对不会和Python2.7的环境搞混,是多版本环境下最安全的操作方式。
三、如果坚持要用django-admin,检查你的别名设置
要是你非得用django-admin命令,那大概率是你的别名没写对——重点是要传递后续参数!比如:
- Windows cmd里的别名要加
$*,不然输入的startproject Returner不会被传给django-admin.py:doskey django-admin=python "C:\你的Python3.5路径\Scripts\django-admin.py" $* - Linux/macOS的bash里,别名要确保能正确传递参数,写法应该是:
alias django-admin='python /你的Python3.5路径/site-packages/django/bin/django-admin.py'
之前报错“缺少位置参数”,十有八九是别名没把startproject和项目名Returner传递给django-admin.py,相当于只跑了django-admin.py本身,没给它指令,自然会报错。
四、验证项目创建结果
不管用哪种方式,创建完后检查下生成的文件:
- 根目录应该有个
manage.py - 还有个
Returner文件夹,里面包含settings.py、urls.py这些核心文件,而且文件开头有Generated by 'django-admin startproject...'的注释,就说明创建成功了。要是之前报错导致生成了残缺文件,删掉重新创建就行。
内容的提问来源于stack exchange,提问作者AivanF.
相关产品推荐
相关产品推荐

