2

我正在运行 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功能,但它不应该是必要的,对吧?

4

3 回答 3

1

既然您确实有一个可行的命令行解决方案,为什么不在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实现。

于 2014-11-29T04:51:36.720 回答
1

django-admin.py startproject testproject应该够用了

因为 django-admin.py 驻留在系统路径上

我建议你使用虚拟环境而不是全球化包

于 2014-11-29T04:34:50.987 回答
0

这个问题是从 .egg 压缩文件而不是使用 pip 下载和安装 Django 的结果。

我不确定它是如何追溯到源头的,但这就是问题所在。当使用 pip 安装 Django 时,这个问题就消失了。

警告:本文的其余部分是人类情感表达的类型,stackoverflow 对此嗤之以鼻,我无法抗拒分享。

自从我偶然发现解决方案以来已经有几个月了,我现在才记得更新这个线程。

感谢史蒂夫·巴恩斯(Steve Barnes)教我跳出框框思考并找到临时解决方案。感谢 Nishan-Paradox 添加该建议以使用虚拟环境。像这样的建议对新手来说真的很有价值,即使它们与问题无关。常识仍然很流行。

附注:我现在正在虔诚地使用 pip 和虚拟环境,生活要好得多:) 对于可能阅读此内容的任何其他新手:如果您看到许多其他人使用工具,请在决定是否要使用之前先尝试一下它与否。谷歌搜索可能无法为您提供足够的信息来做出决定,但经验可以。您可能会很高兴尝试新事物并将其添加到您的工具箱中。

于 2015-02-18T01:59:25.217 回答