在Cygwin shell中从Maven调用Python

时间:2012-10-25 14:00:09

标签: python maven cygwin

当从Cygwin shell使用Maven构建(通过Cygwin在Windows上进行bash)时,/ usr / bin的路径无法正确解析。

让我解释一下。 Cygwin附带Python,可以从/ usr / bin作为符号链接访问。 Maven可以访问此符号链接,因为它的位置在PATH环境变量中。 Cygwin将/ usr / bin添加到PATH环境变量中。但是,Maven无法找到Python。例如。

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default) on project cloud-devcloud: Command execution failed. Cannot run program "python" (in directory "C:\cygwin\home\myuser\incubator-cloudstack\tools\devcloud"): CreateProcess error=2, The system cannot find the file specified -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

但是Python就在那里:

$ which python
/usr/bin/python

虽然是一个符号链接。

$ ls -al /usr/bin/python
lrwxrwxrwx 1 donall Domain Users 13 Sep 19 11:38 /usr/bin/python -> python2.6.exe

Python是一个符号链接的问题吗?或者Maven无法访问/ usr / bin中的文件?

1 个答案:

答案 0 :(得分:3)

似乎maven作为常规Windows原生应用程序运行,而不是“cygwin感知应用程序”(如果存在这样的事情:-))

这由内部使用的路径表示,该路径打印在日志中:C:\ cygwin \ home \ myuser \ incubator-cloudstack \ tools \ devcloud

因此,在找到python可执行文件时,来自Maven的调用将无法识别cygwin路径。一种可能的解决方案是将包含python.exe的目录添加到系统PATH(这意味着,Windows PATH变量)