在命令提示符下运行Python脚本的问题(尤其是命令行参数)?
我想在命令提示符下运行我的Python脚本,而不需要先调用python.exe。我特别是在运行django-admin.py时这样做。我已经把C:\Python26和C:\Python26\Scripts添加到了我的PATH环境变量中。但是,当我尝试通过以下命令运行django-admin.py时:
django-admin.py startproject helloworld
我收到的提示是:输入'django-admin.py help'查看用法。
经过一些实验,我发现问题是这些脚本的后续参数没有被传递,原因不明,因为我还尝试了其他一些Python脚本。我知道我可以通过以下方式避免这个问题:
python C:\Python26\Scripts\django-admin.py startproject helloworld
但我知道应该可以只运行第一个命令就能让它工作,因为我之前确实能成功运行过。我到处找过,但没有找到太多有用的信息,所以现在任何建议对我来说都很有帮助。
更新:.py文件的关联设置是正确的,但问题仍然存在。
2 个回答
我知道这个话题已经很老了,但我找了好几周都没找到解决这个问题的方法。不过今天我试了点新东西:
如果你在用Windows 7,建议不要用命令提示符来写脚本。
可以试试Windows PowerShell,路径是:所有程序 -> 附件 -> Windows PowerShell -> Windows PowerShell
。在这里,你可以运行命令django-admin.py startproject mysite
,前提是你已经把正确的路径添加到了环境变量里。
顺便说一下,我现在在Windows 7 Ultimate 32位上用的是Python 2.7和Django 1.2.4。
检查一下 assoc
和 ftype
。如果设置正确,你就可以带参数运行 .py
文件了。
> assoc .py .py=Python.File > ftype Python.File Python.File="C:\Python26\python.exe" "%1" %*
根据你安装 Python 的方式,这些设置可能会有也可能没有。你可以用 set 命令来设置它们,使用 assoc
和 ftype
。
> assoc .py=Python.File > ftype Python.File="C:\Python26\python.exe" "%1" %*
另外,如果 .py
被包含在 PATHEXT
环境变量中,你就可以在运行 .py
文件时不需要加上后缀 .py
。
> set PATHEXT=%PATHEXT%;.py > django-admin startproject helloworld