python: 无法打开文件 'django-admin.py': [Errno 2] 没有此文件或目录

12 投票
9 回答
50552 浏览
提问于 2025-04-18 07:50

我有一台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 个回答

1

我之前也遇到过类似的问题,不过是用不同的Python脚本。解决办法是在脚本的最上面加上一个叫做shebang的东西,内容是#!/usr/bin/env python。然后确保这个脚本在我的路径里,这样我就可以直接用script.py来调用它,而不需要每次都写成python full/path/2script/script.py

2

对于Windows用户,只需输入 django-admin startproject myproject 来使用django-admin.exe这个工具。

4

使用 django-admin.py startproject 时,不需要加上 python。

你可以直接用 django-admin.py startproject,不需要在前面加 python,这个命令在任何文件夹下都能运行。只有在 Windows 系统上,你需要写出完整的路径。

django 是通过你电脑里的 python 解释器 来运行 admin 脚本的,这个解释器在你的 path 里。

4

python django-admin.py 是在当前工作目录中执行一个叫做 django-admin.py 的 Python 文件。

如果你把 /usr/local/bin 加入到 PATH 环境变量中,那么你只需要输入 django-admin.py,而不需要每次都写 python /usr/local/bin/django-admin.py

  1. 首先,检查一下 PATH 里有没有 /usr/local/bin

    echo $PATH
    
  2. 如果没有 /usr/local/bin,那就把它加进去:

    export PATH=$PATH:/usr/local/bin  # sh, ksh, bash, ..
    
    set path = ($path /usr/local/bin) # csh
    
21

你把两种提到可执行文件的方式搞混了。

/usr/local/bin 在你的路径中,而 django-admin.py 被标记为可执行的,所以你可以直接用它,不需要前面加 python

django-admin.py startproject myproject

当你以 python 开头时,这意味着“用这个路径下的脚本启动 Python”。所以,如果你想启动的脚本不在你当前的目录里,你就需要提供完整的路径。

撰写回答