Python 2.7 蚂蚁仍在抛出错误“;找不到python“;设置PATH变量后

Python 2.7 蚂蚁仍在抛出错误“;找不到python“;设置PATH变量后,python-2.7,ant,Python 2.7,Ant,我在path环境变量中包含了python msi的路径,并在构建文件中正确地描述了“exec”。 我仍然得到错误- BUILD FAILED F:\GitHub\appinventor-sources\appinventor\build.xml:16: The following error occu rred while executing this line: F:\GitHub\appinventor-sources\appinventor\build-common.xml:284: Th

我在path环境变量中包含了python msi的路径,并在构建文件中正确地描述了“exec”。 我仍然得到错误-

BUILD FAILED
F:\GitHub\appinventor-sources\appinventor\build.xml:16: The following error occu
rred while executing this line:
F:\GitHub\appinventor-sources\appinventor\build-common.xml:284: The following er
ror occurred while executing this line:
F:\GitHub\appinventor-sources\appinventor\blocklyeditor\build.xml:50: Execute fa
iled: java.io.IOException: Cannot run program "python" (in directory "F:\GitHub\
appinventor-sources\appinventor\blocklyeditor"): CreateProcess error=2, The syst
em cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
        at java.lang.Runtime.exec(Runtime.java:617)
        at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav
a13CommandLauncher.java:58)
        at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
        at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
        at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)
        at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
        at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single
CheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single
CheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
        at org.apache.tools.ant.Main.runBuild(Main.java:851)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find th
e file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:385)
        at java.lang.ProcessImpl.start(ProcessImpl.java:136)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
        ... 48 more

Total time: 20 seconds
F:\GitHub\appinventor-sources\appinventor [master +2 ~0 -0 !]>
生成失败
F:\GitHub\appinventor sources\appinventor\build.xml:16:发生以下错误:
执行此行时出现错误:
F:\GitHub\appinventor sources\appinventor\build common.xml:284:
执行此行时发生错误:
F:\GitHub\appinventor sources\appinventor\blocklyeditor\build.xml:50:执行fa
iled:java.io.IOException:无法运行程序“python”(在目录“F:\GitHub”中\
appinventor sources\appinventor\blocklyeditor”):CreateProcess错误=2,系统
em找不到指定的文件
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
位于java.lang.Runtime.exec(Runtime.java:617)
位于org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav
a13CommandLauncher.java:58)
位于org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
位于org.apache.tools.ant.taskdefs.Execute.Execute(Execute.java:442)
位于org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:628)
位于org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
位于org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(delegatingmethodaccess
sorImpl.java:43)
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:435)
位于org.apache.tools.ant.Target.performTasks(Target.java:456)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
位于org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single
CheckExecutor.java:38)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1248)
位于org.apache.tools.ant.taskdefs.ant.execute(ant.java:441)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(delegatingmethodaccess
sorImpl.java:43)
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:435)
位于org.apache.tools.ant.Target.performTasks(Target.java:456)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
位于org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single
CheckExecutor.java:38)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1248)
位于org.apache.tools.ant.taskdefs.ant.execute(ant.java:441)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl。
爪哇:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(delegatingmethodaccess
sorImpl.java:43)
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:435)
位于org.apache.tools.ant.Target.performTasks(Target.java:456)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
位于org.apache.tools.ant.Project.executeTarget(Project.java:1364)
在org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
java:41)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1248)
位于org.apache.tools.ant.Main.runBuild(Main.java:851)
位于org.apache.tools.ant.Main.startAnt(Main.java:235)
位于org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
位于org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
原因:java.io.IOException:CreateProcess error=2,系统找不到
指定的e文件
在java.lang.ProcessImpl.create(本机方法)
位于java.lang.ProcessImpl.(ProcessImpl.java:385)
在java.lang.ProcessImpl.start(ProcessImpl.java:136)
位于java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 48多
总时间:20秒
F:\GitHub\appinventor sources\appinventor[master+2~0-0!]>
我错过了什么

路径中python msi的路径

它不应该是msi的路径,而是exe的路径。(因此,为了安装python,您应该首先自己运行msi)


您缺少引发错误的ANT代码。根据经验,这主要是因为您没有指定python二进制文件的拉入路径。此外,环境变量的使用是很奇怪的,有时人们会弄错(一个例子可以证明这一点),最后使用环境变量是一个坏主意,因为它会使构建变得脆弱,而不是独立的。
$ python --version
sh.exe": python: command not found

$ PATH=$PATH:/c/Python27/

$ python --version
Python 2.7.6