为了使我的Python脚本在Windows机器(WinXP和Win7)上正常运行,我花了一些心血在这里,在Web上以及在Python文档中寻找答案,并自行进行测试。因此,我只是写了一篇博客,并将其粘贴在下面,以防对他人有用。很抱歉,它很长,可以随时进行改进;我不是专家。
[ 更新:Python 3.3现在包括适用于Windows的Python启动器,可让您键入py(而不是python)来调用默认解释器,或py -2,py -3,py -2.7等。它还支持shebang行,允许脚本本身指定。对于3.3之前的版本,可以单独下载启动器。
http://docs.python.org/3/whatsnew/3.3.html
]
在Windows下方便地运行Python脚本
也许您正在创建自己的Python脚本,或者有人为您提供了一个处理数据文件的工具。假设您已获取Python脚本并将其保存到“ D:\ my scripts \ ApplyRE.py”。您想通过双击它或从任何位置在命令行中键入它来方便地运行它,并可以像这样将参数传递给它(-o表示“如果已经存在则覆盖输出文件”):
ApplyRE infile.txt outfile.txt -o
假设您还有一个数据文件“ C:\ some files \ some lexicon.txt”。最简单的选择是移动文件或脚本,使它们位于相同的位置,但这可能会造成混乱,因此,我们假定它们将保持分开。
确保Windows可以找到Python解释器
安装Python之后,请验证在命令提示符下键入python是否有效(然后键入exit()以退出Python解释器)。
C:\>python
Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\>
如果这不起作用,则需要在PATH环境变量中附加“; C:\ Python32”之类的内容(不带引号)。有关说明,请参见下面的PATHEXT。
将Python与.py和.pyc关联
验证双击ApplyRE.py可以运行它。(顺便说一下,它还应该带有Python徽标作为其图标,并标记为“ Python File”。)如果尚未完成,请右键单击.py文件,选择“打开方式”,选择“程序”,然后选中“始终使用...”此关联可以提高便利性,但并非绝对必要-您每次要运行脚本时都可以指定“ python”,如下所示:
D:\my scripts>python ApplyRE.py lexicon-sample.txt -o
Running... Done.
这是一个非常具体的变体,除非您需要指定其他版本的解释器,否则它是可选的。
D:\my scripts>c:\python32\python ApplyRE.py lexicon-sample.txt -o
Running... Done.
但这很痛苦。幸运的是,一旦在PATH中安装了Python,并将其与.py关联,则双击.py文件或直接将其作为命令键入应该可以正常工作。在这里,我们似乎直接在运行脚本–在脚本旁边的“我的脚本”文件夹中的示例文件上运行脚本很简单。
D:\my scripts>ApplyRE.py lexicon-sample.txt -o
Running... Done.
省略.py扩展名(编辑PATHEXT)
为了进一步减少键入,您可以告诉Windows .py(也许还有.pyc文件)是可执行的。为此,右键单击“计算机”,然后选择“属性”,“高级”,“环境变量”,“系统变量”。在现有的PATHEXT变量后面加上“; .PY; .PYC”(不带引号),或者如果您还不确定,则创建它。关闭并重新打开命令提示符。现在,您应该可以省略.py(仅供参考,如果存在,这样做将导致ApplyRE.exe或ApplyRE.bat改为运行)。
D:\my scripts>ApplyRE lexicon-sample.txt -o
Running... Done.
将脚本添加到系统PATH
如果您要经常从命令提示符下使用脚本(通过使用BAT文件这样做不太重要),则需要将脚本文件夹添加到系统PATH。(在PATHEXT旁边,您应该看到一个PATH变量;在该变量后附加“; D:\ my脚本”,不带引号。)这样,您可以针对当前位置的文件从其他位置运行脚本,如下所示:
C:\some files>ApplyRE "some lexicon.txt" "some lexicon OUT.txt" -o
Running... Done.
成功!这几乎是您简化命令行所需要做的全部工作。
直接运行而无需调整PATH
如果您是快速打字员,或者不介意为每种情况创建批处理文件,则可以指定完整路径(用于脚本或参数),而无需调整PATH。
C:\some files>"d:\my scripts\ApplyRE.py" "some lexicon.txt" "some lexicon OUT.txt" -o
Running... Done.
C:\some files>d:
D:\>cd "my scripts"
D:\my scripts>ApplyRE.py "c:\some files\some lexicon.txt" "c:\some files\some lexicon OUT.txt" -o
Running... Done.
创建快捷方式或批处理文件
如果.py与已安装的Python相关联,则可以双击ApplyRE.py来运行它,但是控制台可能会出现或消失得太快而无法读取其输出(或失败!)。要传递参数,您首先需要执行以下操作之一。(a)右键单击并创建一个快捷方式。右键单击快捷方式以编辑属性并将参数附加到Target。(b)创建一个批处理文件-具有不同名称的纯文本文件,例如ApplyRErun.bat。此选项可能更好,因为您可以要求它暂停以查看输出。这是示例BAT文件的内容,该文件的位置是从c:\ some文件定位并运行。
python "d:\my scripts\ApplyRE.py" "some lexicon.txt" "some lexicon OUT.txt" -o
pause
高级:附加到PYTHONPATH
通常这不是必需的,但是其他可能相关的环境变量是PYTHONPATH。如果我们将d:\ my脚本附加到该变量,则其他位置的其他Python脚本可以通过import语句使用这些脚本。