twisted的测试工具是trial,在 Dave对trial的介绍文章 中,运行测试的脚本是"trial tests/test_poetry.py",在Windows平台上,安装twisted后,只是在\(PYTHON_HOME/Scripts下有一个trial.py文件,所以直接运行上面的脚本系统会返回“无法识别的指令”,必须写成"\)PYTHON_HOME/python \(PYTHON_HOME/Scripts/trial.py tests/test_poetry.py",调试时很麻烦,在\)PATH中增加\(PYTHON_HOME,就可以简写为"python $PYTHON_HOME/Scripts/trial.py tests/test_poetry.py",如果希望Windows认为py文件是可运行的(类似于Unix平台的脚本中用"#!/usr/bin/python"设置执行脚本的文件),可以通过配置\)PATHEXT实现,具体方法是在这个环境变量中增加".py"(与$PATH一样也是用分号隔开),就可以直接运行"trial ..."了。
Under the hood
执行assoc和ftype两个命令查看文件关联:
C:\Users\chad> assoc|findstr py .py=Python.File .pyc=Python.CompiledFile .pyo=Python.CompiledFile .pyw=Python.NoConFile C:\Users\chad> ftype|findstr py Python.CompiledFile="F:\Software\Python27\python.exe" "%1" % Python.File="F:\Software\Python27\python.exe" "%1" % Python.NoConFile="F:\Software\Python27\pythonw.exe" "%1" %*
从上面可以看到,当运行"trial ..."时,系统的处理过程是:$PATH -> $PYTHON_HOME/Scripts -> trial ->trial.py -> .py -> Python.File -> "F:\Software\Python27\python.exe" "%1" %*,最终将"trial ..."转换为"F:\Software\Python27\python.exe F:\Software\Python27\Scripts\trial.py ..."执行。ftype命令的结果来自注册表,例如:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\open\command。
Windows的文件关联原理参见“ 玩转Windows 7文件关联 ”,软件 FileTypesMan 管理文件关联很好用。