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