Win32下,直接执行系统PATH中的Python脚本

作者:半瓶墨水   链接:http://www.2maomao.com/blog/win32-py-as-exe-in-path/

Update:

大熊在python-chinese里说:
只要修改两个环境变量就行了
1. PATH,把C:\python25\scripts加上(假设你的python2.5安装在c盘)
2.PATHEXT,添加扩展名.PY;.PYW

然后你就可随便执行你的python脚本了,就像EXE或BAT一样

所以,下面的这些,就当是python脚本的一个小练习了。

——————————————————–

Python经常会把脚本装在%Python%\Scripts下面,很难用,执行的时候需要跑到这个目录下去搞
如果,脚本像可执行程序那样,在系统的PATH里随便找个目录一放就能到处执行该多好!

早晨爬起来,写了个工具,包括一个批处理文件以及一个python脚本。
安装方法
1. 下载http://www.2maomao.com/blog/wp-content/uploads/exepy.zip
2. 在系统PATH中找个目录,往里一扔就行,我放在了c:\python\scripts(已经加入系统PATH中)

使用方法
此工具为命令行工具
在命令行中,敲入:p epydoc xxx
这样就可以执行c:\python\scripts\下面的epydoc.py了。

注意:python.exe所在目录要加入到PATH中,通常是c:\python

————-实现细节————-
批处理文件p.bat:

下载: p.bat
@echo off
REM this command file intend to quickly execute python file in the PATH
REM Usage: p xxx, xxx is the name of xxx.py in PATH
python %~dp0\py\exepy.py %1 %2 %4 %5 %6 %7 %8 %9
@echo on

Python脚本(放在p.bat所在的目录的”py”子目录下,可以自己去修改p.bat来自定义目录)

#!/usr/bin/python
import os
import sys
#-----------------------------------------------
def show_help():
    
print
    
print "  Purpose:   Execute python script in system PATH"
    
print "  Usage:     p python_script_name [params]"
    
print
#-----------------------------------------------
if len(sys.argv) < 2:
    
show_help()
    
exit()
 
script = sys.argv[1]
if len(script) > 3 and script[-3:].lower() != '.py':
    
script += '.py'
params = ""
for arg in sys.argv[2:]:
    
params += " \"" + arg + "\""
path_str = os.environ['PATH']
paths = path_str.split(';')
for path in paths:
    
if len(path) == 0:
        
continue
    
if path[-1] != '\\':
        
path += '\\'
 
    
full_path = path + script
    
if os.path.isfile(full_path):
        
cmd = "python \"" + full_path + "\"" + params
        
os.system(cmd)
        
exit()

留下回复