我正在运行 Windows 8.1、Python 3.4.2、Django 1.7。
.py 文件与 python.exe 关联。
Windows系统路径为:
C:\lots_of_paths;C:\Python34;C:\Python34\Lib\site-packages\Django-1.7.1-py3.4.egg\django\bin
(共531个字符)
注册表中的 PYTHONPATH 变量是:
C:\Python34\Lib;C:\Python34\DLLs;C:\Python34\Lib\site-packages\Django-1.7.1-py3.4.egg\django\bin
(共96个字符)
我在设置这个变量时粘贴了 Django 路径,以避免拼写错误。当我从 PYTHONPATH 复制并粘贴到记事本时,该行没有中断,因此似乎没有隐藏的回车符。
我启动 cmd.exe 并从目录 C:\projects 开始工作。
当我输入 python -c "import sys;print(sys.path)"
结果是:
['', 'C:\Python34\lib\site-packages\django-1.7.1-py3.4.egg', 'C:\WINDOWS\S YSTEM32\python34.zip', 'C:\Python34\DLLs', 'C:\Python34\lib', 'C:\Python34 ', 'C:\Python34\lib\site-packages']
\django\bin 正在从路径中剪裁。
当我输入 python django-admin.py startproject please_work
...它打印:python: can't open file 'django-admin.py': [Errno 2] No such file or directory
系统路径似乎找到了 Python,但 PYTHONPATH 并没有像预期的那样工作。
当我输入 django-admin startproject saving_time 时,我得到了这个:
Usage: django-admin.py subcommand [options] [args]
Options:
-v VERBOSITY, --verbosity=VERBOSITY
Verbosity level; 0=minimal output, 1=normal output,
2=verbose output, 3=very verbose output
(etc. etc. etc.)
...所以看起来 django-admin.py 在系统路径上找到并通过与 python.exe 关联运行,但参数未传递.当 .py 后缀包含在命令中时,我得到了相同的结果,如下面的一个答案所示:django-admin.py startproject testproject
键入 python C:\Python34\Lib\site-packages\Django-1.7.1-py3.4.egg\django\bin\django-admin.py startproject wasting_time 功能正常,但是应该没有必要吧?
请您参考如下方法:
既然您确实有一个可行的命令行解决方案,为什么不在 C:\Python34\Scripts 中创建一个批处理文件,可能称为 dj-admin.bat,其中包含您的带参数的完整命令,如果这是您一直执行的命令,或者允许您使用参数。
顺便说一句,据我所知,当你输入:
python somefile.py [parameters]
Python 希望 somefile.py 位于本地目录或绝对路径中,它不会在 PYTHON_PATH 中搜索它,但如果您键入:
python -m somemodule [command_from_module] [parameters]
Python 将首先在当前目录中查找,然后在 PYTHON_PATH 中查找。
您的问题的另一个可能来源是在您的路径上有多个 django-admin - 如果它在路径中较早,它将优先。在 Unix/Linux 系统上,有一个名为 which 的可爱命令,它会告诉您找到了哪些命令。
Python 实现非常简单。
