首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python打包/部署Maven

从Python打包/部署Maven
EN

Stack Overflow用户
提问于 2018-11-19 16:31:22
回答 2查看 218关注 0票数 2

总体情况是,我正在尝试将使用maven构建并部署到web逻辑服务器的部署过程自动化。小图是,我正在使用子进程来查看是否可以从python内部调用maven。当我尝试这个子进程时,错误的文件是mvn。到目前为止,我的代码如下:

代码语言:javascript
复制
import subprocess


def main():
    print(subprocess.check_output(["mvn", "-v"]))


if __name__ == '__main__':
    main()

这是我的错误:

代码语言:javascript
复制
C:\pythondev\python.exe "C:/pythondev/development/deployment scripts/redploy-to-localhost.py"
Traceback (most recent call last):
  File "C:/pythondev/development/deployment scripts/redploy-to-localhost.py", line 9, in <module>
    main()
  File "C:/pythondev/development/deployment scripts/redploy-to-localhost.py", line 5, in main
    subprocess.check_output(["a"])
  File "C:\pythondev\lib\subprocess.py", line 376, in check_output
    **kwargs).stdout
  File "C:\pythondev\lib\subprocess.py", line 453, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\pythondev\lib\subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "C:\pythondev\lib\subprocess.py", line 1155, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

Process finished with exit code 1

虽然我的问题在于子流程,但我愿意回答那些提出更好选择的答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-19 21:33:57

试试看它对我有用。

代码语言:javascript
复制
print(subprocess.check_output(["mvn", "-v"], shell=True))
票数 0
EN

Stack Overflow用户

发布于 2020-03-10 09:10:39

我遇到了同样的问题,并且拒绝使用shell=True,因为互联网告诉我这是邪恶的。

当我在cmd.exe中运行cmd.exe时,我可以看到有两个匹配:

  • mvn,它是一个Unix脚本(以#!/bin/sh开头),
  • mvn.cmd,它是一个Windows批处理文件。

我认为在mvn something -something中执行cmd.exe会发生以下情况: Windows尝试查找名为mvn的可执行文件。它找到了mvn文件,但意识到这个文件是不可执行的。然后尝试查找像mvn.commvn.exe、.等文件。(请参阅%PATHEXT%系统变量)。当它找到mvn.cmd时,它会执行它,每个人都很高兴。

据我所知,subprocess.check_output (和subprocess.run等)的问题是没有执行通过%PATHEXT%进行的“扩展”。因此,解决方案是,您必须手动提供扩展并运行命令,如

代码语言:javascript
复制
print(subprocess.check_output(["mvn.cmd", "-v"]))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53378973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档