我使用distutils来安装我的python包,使用这个setup.py:
import distutils.core
args = {
'name' : 'plugh',
'version' : '1.0',
'scripts' : [ "scripts/plugh" ],
'packages': [ "plugh" ],
}
d = distutils.core.setup(
**args
)
在linux / mac上,它按预期工作:
% plugh
hello world
%
在Windows上,脚本“plugh”不会运行:
C:\Python25\Scripts>plugh
'plugh' is not recognized as an internal or external command,
operable program or batch file.
C:\Python25\Scripts>
我在http://bugs.python.org/issue7231发现错误报告,在安装python时没有将\ Scripts目录添加到PATH,所以我应用了该故障单中描述的解决方法(即将C:\ Python25 \ Scripts添加到PATH)
C:\Python25\Scripts>path
PATH=c:\Python25\Scripts;C:\Program Files\Legato\nsr\bin;C:\WINDOWS\system32;C:\
WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;c:\python2
5;c:\local;C:\WINDOWS\system32\WindowsPowerShell\v1.0
这是不能在Windows上运行的东西?如果是这样,你究竟应该如何在Windows机器上使用python脚本?
我想我可以检测到Windows,并在列表中添加一个名为“plugh.bat”的附加脚本,其中包含以下内容:
@echo off
c:\python25\python.exec c:\python25\scripts\plugh %1 %2 %3 %4 %5 %6 %7 %8 %9
但这真的是正确答案吗?我会想到,对于windows中包含distutils的所有自定义,会有比这更好的答案。
答案 0 :(得分:6)
windows使用文件的扩展名来确定它的运行方式。
将文件命名为plugh.py
,并在提示中使用plugh.py
进行调用。
答案 1 :(得分:5)
如果您使用ActivePython,它会将C:\PythonXY\Scripts
目录添加到您的%PATH%
(ActivePython 2.6另外添加PEP 370的%APPDATA%\Python\Scripts
在安装过程中到%PATH%
)。
要在Windows计算机上部署脚本,最好使用 Distribute ,它将负责为脚本和安装.exe包装器,调用实际的Python。已安装包(以避免与多个Python安装冲突 - 因此将脚本命名为end .py是不够的)。有关此主题的更多信息,请阅读Distribute文档中的entry points。