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

15 投票
15 回答
42971 浏览
提问于 2025-04-16 13:39

我正在使用 Python 2.7,Django 1.2.5,操作系统是 Windows 7。

我不太确定自己做了什么。之前我可以像这样创建 Django 项目:

python django-admin.py startproject test

但现在我却遇到了这个错误。

无法打开文件 'django-admin.py':
[错误号 2] 没有这样的文件或目录

我可以输入以下命令,它是可以正常工作的。

python C:\Python27\Scripts\django-admin.py startproject test

我该如何让它恢复到以前的样子?也就是不需要输入 django-admin.py 文件的完整路径。

我已经尝试过的事情:

我卸载了 Python,并手动从 Windows 的 PATH 变量中删除了相关值。然后重新安装了 Python。也删除并重新安装了 Django。

我已经将 C:\Python27\Scripts 添加到了 Windows 的 环境变量 中的 PATHPYTHONPATH 变量里。

有没有什么建议?

我的 PATH 变量包含:

C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\ActiveState Komodo Edit 6\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\django-apps;F:\My_Projects;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Mercurial\bin;C:\Python27;C:\Python27\Scripts

PYTHONPATH 包含:

C:\Python27;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts;C:\django-apps;f:\my_projects

15 个回答

5

这是我让它工作的方法:

  • 我在C:\Python27安装了Python 2.7,使用的是python.org上为Windows提供的安装包。
  • 我选择安装了Django的最新正式版本(1.3),而不是开发版本。
  • 我按照这里的说明安装了Django:http://docs.djangoproject.com/en/dev/topics/install/
  • 因为我只是进行本地开发,所以我跳过了安装Apache和mod_wsgi的步骤(Django说明中提到的)。
  • 我的应用不需要数据库,所以我跳过了“让你的数据库运行”的部分;而且我也跳过了“删除任何旧版本的Django”(因为我没有安装过)。
  • 我直接跳到“安装正式版本”的说明。
  • 我按照指示安装了bsdtar,以便在我的Windows机器上解压发布文件,运行得很顺利。
  • 在Windows上,我以管理员身份打开了cmd命令行,并运行了命令“setup.py install”,也没问题。
  • 我按照说明验证了Django的安装:运行import django和django.print get_version(),返回了1.3,成功。
  • 然后我尝试运行django-admin.py startproject myproject,遇到了类似的错误,当我在Python解释器中运行django-admin.py时,出现了指向参数的语法错误。真奇怪。
  • 我找到这个讨论串,运行了这个命令:c:\Python27\Scripts\django-admin.py startproject myproject,结果成功了。
  • 我还是很好奇,想看看能否在cmd命令行中运行,而不加路径,因为我觉得这样应该可以,但结果不行。

这是我在安装说明之外做的事情,让它在Windows上对我有效:

  • 我验证了文件关联,使用了这个帖子中的信息,所有关联都很好。
  • 我使用“开始|计算机|系统属性|高级系统属性|环境变量”对话框设置了环境变量,如下:
  • 设置新的系统变量:PYTHONPATH = c:\Python27\Lib;c:\Python27\Scripts
  • 编辑现有的用户变量:PATH,在最后添加了:C:\Python27;C:\Python27\Scripts

结果:

  • 现在.py文件可以直接从cmd命令行执行(不需要先运行Python解释器)。
  • 例如,命令django-admin.py startproject mynewproject运行得很好。

如果有任何问题,请在评论中提问,也许我能帮忙。

10

如果你的电脑里有 C:\Python27\Scripts 这个路径,直接输入:

django-admin.py startproject proj

应该有一个和 .py 文件关联的设置,然后尝试执行。如果你在命令前加上 python,那么接下来的命令就是一个文件路径。

我一直没法成功运行 python django-admin.py,每次都会遇到你说的那个错误。

确保 .py 文件是和 python 关联的。你可以通过文件属性(打开方式...)来检查,或者在命令提示符里输入 assoc .py 来查看。

15

我之前也遇到过类似的问题,使用的是稍微新一点的Python 2.7.x和Django,但问题不在于PATH。下面是我在Windows XP上解决这个问题的步骤:

  1. 找到一个.py文件(随便哪个,甚至是空文件都可以)。
  2. 右键点击这个文件,选择“打开方式>”,然后选择“选择程序...”。
  3. 这时会弹出一个程序列表,选择python,并勾选“始终使用选择的程序打开这种文件”,然后点击确定

勾选这个选项会重置文件关联,从而解决命令行中的这个问题。

问题的原因是:Windows默认把.py文件设置为用文本编辑器打开。

撰写回答