在我的渐变。构建文件。在
exec {
workingDir System.getProperty("user.dir")
commandLine 'python3.6', 'buildscript.py'
}
exec {
workingDir System.getProperty("user.dir")
commandLine 'python3.6', '-m', 'virtualenv', 'env'
}
exec {
workingDir System.getProperty("user.dir")
commandLine 'source', 'env/bin/activate'
}
exec {
workingDir System.getProperty("user.dir")
commandLine 'pip3.6', 'install', 'pybuilder'
}
exec {
workingDir System.getProperty("user.dir")
commandLine 'pyb', '-E', 'env', '-X'
}
这些都在执行gradle build时运行的构建任务中。 理论上,这应该运行我创建的一个脚本来创建构建python程序所需的所有文件,然后创建一个虚拟环境,激活它,安装pybuilder,然后运行pybuilder。但是,命令:
^{pr2}$似乎失败了。它声称目录/文件不存在,尽管它通过命令行工作。我不知道为什么会这样。这样做的目的是强制Pybuilder将程序依赖项安装到我创建的虚拟环境中。从技术上讲,pyb-env应该为我激活虚拟环境,但不管出于什么原因,它没有将我的依赖项安装到该虚拟环境中。在我们的Jenkins节点上,这是一个问题,因为我们不希望这些安装在全局范围内,更不用说,我没有根用户权限。在
任何帮助都将不胜感激。如果您知道另一种让Pybuilder正常工作的方法,那也同样好。在
临时解决方案:我最终创建了一个小shell脚本来创建和激活虚拟环境。然后我执行了gradle的剧本。在
在
activate
上调用source
只是在执行shell魔术来连接变量。您不需要总是调用activate
(在本例中可能不能)。相反,您应该在pip3.6
和pyb
命令前面加上env/bin
来直接调用二进制文件。因此,它将是相关问题 更多 >
编程相关推荐