我运行的是 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 实现非常简单。
关于python - sys.path 不包含 PYTHONPATH (必须输入完整路径才能运行 django-admin startproject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198822/