python - sys.path 不包含 PYTHONPATH (必须输入完整路径才能运行 django-admin startproject)

标签 python django django-admin pythonpath sys.path

我运行的是 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/

相关文章:

Django - ChoiceField - 选项按钮而不是选择框

python - Django 中 ManyToMany 关系的内联编辑

python - 缺少 PyQt QML 错误控制台

python - Django 在呈现 ModelForm 之前更改模型数据

python - django-social-auth - 缺少 HTTPSConnection

使用自定义模型 User 进行 Django 身份验证

django - Django 表单集中每个表单的初始数据不同

python - 我如何知道是否可以禁用 SQLALCHEMY_TRACK_MODIFICATIONS?

python - 对数据库执行写操作时MDB_MAP_FULL错误

python - 使用 OneToOneField 扩展 Django Admin UserCreationForm