【发布时间】:2012-05-04 03:02:22
【问题描述】:
我知道我的标题不是描述性的,所以让我在这里尝试解释一下。
我通常像这样执行我的 python 脚本:
D:\github\Miscellaneous-Programs\Python>python check.py -h
hello
['check.py', '-h']
现在我所做的是在我的 Windows path 环境变量中添加文件夹 D:\github\Miscellaneous-Programs\Python。比我尝试像这样执行我的脚本:
C:\Users\noob>check -h
hello
['D:\\github\\Miscellaneous-Programs\\Python\\check.py']
如您所见,它没有显示我提供给它的 -h 参数。
我的check.py
import sys
print "hello"
print sys.argv
如果我从上述 python 脚本中删除print sys.argv,它在我上面提到的两种情况下都可以正常工作,即它打印“hello”就好了。
所以,我的问题是如何在脚本添加到环境变量后执行一个接受一些命令行参数的 python 脚本。
我的目的是在 Windows 命令提示符的任何位置执行我的python script,这有点类似于chmod +x check.py。
我在 cygwin 中尝试了 chmod 选项,这两种情况都适用。
Cygwin output
noob@noob-PC ~
$ chmod +x check.py
noob@noob-PC ~
$ ./check.py h
['./check.py', 'h']
【问题讨论】:
-
制作一个包含
python full\path\to\check.py的.bat 文件并将包含该.bat 的目录添加到Path(您可能希望将echo off放在.bat 的开头。 -
我建议将标题更改为更具描述性的内容,例如。 “从 PATH 运行 Python 脚本会删除除第一个命令行参数之外的所有参数”,因此遇到相同问题的其他人会找到它。
-
真的是
C:\Users\noob>check -h而不是C:\Users\noob>check.py -h?