python: 无法打开文件 'django-admin.py': [Errno 2] 没有此文件或目录
我有一台Mac电脑,最近开始学习Django。每当我在终端里输入
python django-admin.py startproject myproject
来创建一个项目时,就会出现这个错误
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
我在寻找解决办法的时候,有一个建议是让我输入type django-admin.py,这样可以找到django-admin.py的位置,然后使用这个路径。
所以当我输入
python /usr/local/bin/django-admin.py startproject myproject
我的项目就创建成功了。
有没有人能告诉我为什么我需要这样做,为什么不能直接写django-admin.py?还有没有其他方法可以解决这个问题?
9 个回答
我之前也遇到过类似的问题,不过是用不同的Python脚本。解决办法是在脚本的最上面加上一个叫做shebang的东西,内容是#!/usr/bin/env python
。然后确保这个脚本在我的路径里,这样我就可以直接用script.py
来调用它,而不需要每次都写成python full/path/2script/script.py
。
对于Windows用户,只需输入 django-admin startproject myproject
来使用django-admin.exe这个工具。
使用 django-admin.py startproject
时,不需要加上 python。
你可以直接用 django-admin.py startproject
,不需要在前面加 python,这个命令在任何文件夹下都能运行。只有在 Windows 系统上,你需要写出完整的路径。
django
是通过你电脑里的 python 解释器
来运行 admin
脚本的,这个解释器在你的 path
里。
python django-admin.py
是在当前工作目录中执行一个叫做 django-admin.py
的 Python 文件。
如果你把 /usr/local/bin
加入到 PATH
环境变量中,那么你只需要输入 django-admin.py
,而不需要每次都写 python /usr/local/bin/django-admin.py
。
首先,检查一下
PATH
里有没有/usr/local/bin
echo $PATH
如果没有
/usr/local/bin
,那就把它加进去:export PATH=$PATH:/usr/local/bin # sh, ksh, bash, .. set path = ($path /usr/local/bin) # csh
你把两种提到可执行文件的方式搞混了。
/usr/local/bin
在你的路径中,而 django-admin.py
被标记为可执行的,所以你可以直接用它,不需要前面加 python
:
django-admin.py startproject myproject
当你以 python
开头时,这意味着“用这个路径下的脚本启动 Python”。所以,如果你想启动的脚本不在你当前的目录里,你就需要提供完整的路径。