【问题标题】:django-admin.py prints help onlydjango-admin.py 仅打印帮助
【发布时间】:2012-02-02 04:31:47
【问题描述】:

我正在使用 django 1.3.1

我按照在线教程并尝试使用“django-admin.py startproject mysite”。

但我总是收到这个:

D:\Code\djtest>django-admin.py startproject mysite
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
(...)

发生了什么事?

【问题讨论】:

  • 提供正确的 mysite 路径?它和 djangoadmin 在同一个目录中吗?
  • @Sid 不,不在同一个目录中。但我认为没关系。正确的?我可以选择任何目录?
  • 如果您想从系统中的任何位置创建项目,如果您通过 setup.py 实用程序安装了 Django,则 django-admin.py 应该位于系统路径中。
  • @himanshu 是的。它在我的系统路径中。
  • @ChongWang,试试python full_path_to/django-admin.py startproject mysite - 这是我见过几次的奇怪问题。 *.com/questions/5299241/… 显然找到了脚本但不接受参数。

标签: python django


【解决方案1】:

我遇到了完全相同的问题并使用此工具解决了它: FileTypesManager

问题是 django-admin.py 没有从命令行接收正确的参数。我做了一个测试,在管理脚本的前面写了几行来显示参数的数量以及在它做任何其他事情之前它们是什么。破解:

    #!d:\python27\python.exe
    from django.core import management
    import sys
    print 'Number of arguments:', len(sys.argv), 'arguments.'
    print 'Argument List:', str(sys.argv)

    if __name__ == "__main__":
       management.execute_from_command_line()

当你运行 django-admin.py 时,你会看到只有 1 个参数被传递。这是不正确的。

根据几个论坛的建议,我在命令行中尝试了以下两种方法,并且看起来都很好:

    assoc .py            -->  .py=Python.File
    ftype Python.File    -->  Python.File="D:\Python27\python.exe" "%1" %*   //Correct

然后我查看了注册表,这些值看起来也不错。

但是,当我运行FileTypesManager 时,(它是免费的)它显示了一些不同的东西。命令行设置为:

   "D:\Python27\python.exe" "%1"      //Wrong!

我不知道为什么,但是一旦我更新了这个值,它就完美无缺了。

希望对你有帮助。

【讨论】:

  • 我可以确认这为我在 Win 7 x64 上解决了同样的问题。
  • 是的,我也可以确认。 .py 文件显示错误的条目。然后我使用 fileTypeManger 软件对其进行了修改,然后它就可以正常工作了。但是,当我在 win7 中转到 regedit.exe 并查找 .py 时,它不会显示命令行条目。不确定可能是什么问题。
  • 谢谢。在 Windows 8 上的 FileTypesManager 中设置文件类型关联(基本上添加 %*)有效!
【解决方案2】:

如果您使用的是 Windows 7,请在以下位置更新注册表项:

HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command

拥有价值:

"C:\Python27\python.exe" "%1" %*

(如果你已经将python安装在不同的位置,修改上面的值)

【讨论】:

    【解决方案3】:


    HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command 下的注册表编辑器中
    修改条目来自

    "<your drive>:\Python<version>\python.exe" "%1"
    

    "<your drive>:\Python<version>\python.exe" "%1" %*
    

    我遇到了同样的问题,我就这样解决了。

    【讨论】:

      【解决方案4】:

      如果有人仍然遇到此问题,则无需弄乱您的注册表。这是您需要的答案:here

      基本上是:

      在 django-admin.py 之前添加“python”(或添加 python.exe 的完整路径)。

      C:\Shekhar\djangoWorld>python c:\Python27\Scripts\django-admin.py startproject mysite

      这意味着您正在运行 django-admin.py 作为 python 解释器的参数;而不是将其作为独立脚本运行,在这种情况下,由于某种原因它实际上并没有得到提供的参数。

      【讨论】:

        【解决方案5】:

        尝试提供项目目录的完整路径,即使它在您的 PATH 中

        【讨论】:

          【解决方案6】:
          1. 打开注册表
          2. 转到 HKEY_CURRENT_USER\Software\Classes\py_auto_file\shell\open\command
          3. 更改为“C:\Python27\python.exe”“%1”%*

          它对我有用。

          【讨论】: