【问题标题】:run .exe from makefile on Windows在 Windows 上从 makefile 运行 .exe
【发布时间】:2020-09-16 00:01:10
【问题描述】:

我有一个包含命令行脚本的 python 包。在成为安装在我的 conda 环境路径中的 LT.exe 的 Windows 上。 我正在使用 GNU make(来自 Rtools)来开发一个包含此命令行脚本、python 和 R 脚本的操作管道。问题是我无法识别命令行脚本。

例如我想运行make getpsII

.PHONY : getpsII
getpsII :
    LT.exe --config $(SERVER_CONFIG)

在 conda shell 中直接在 WT 或 CMD 中运行 .exe 是可行的。通过 make 启动它不起作用。我明白了

make[2]: C:/Users/dominikschneider/Miniconda3/envs/plantcv/Scripts/LT.exe: Command not found

我尝试用 cmd /c 附加 LT.exe,在 make 文件中设置 SHELL=CMD,并为其提供 LT.exe 的绝对路径

我认为这与 Windows 如何处理可执行文件(?!)有关,但我们将不胜感激。 我正在使用 WIndows 10。谢谢!

编辑 - 在调用 exe 之前尝试显式设置 PATH:

(plantcv) C:\Users\dominikschneider\Documents\phenomics\doi>make getpsII
setx /M PATH="C:/Users/dominikschneider/Miniconda3/envs/plantcv/Scripts;/Users/dominikschneider/Miniconda3/envs/plantcv:/Users/dominikschneider/Miniconda3/envs/plantcv/Library/mingw-w64/bin:/Users/dominikschneider/Miniconda3/envs/plantcv/Library/usr/bin:/Users/dominikschneider/Miniconda3/envs/plantcv/Library/bin:/Users/dominikschneider/Miniconda3/envs/plantcv/Scripts:/Users/dominikschneider/Miniconda3/envs/plantcv/bin:/Users/dominikschneider/Miniconda3/condabin:/Rtools/bin:/Program Files/Microsoft MPI/Bin:/Python27:/Python27/Scripts:/ProgramData/Boxstarter:/Rtools/bin:/Rtools/mingw_32/bin:/Program Files (x86)/Common Files/Oracle/Java/javapath:/Windows/system32:/Windows:/Windows/System32/Wbem:/Windows/System32/WindowsPowerShell/v1.0:/Windows/System32/OpenSSH:/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/Program Files/CMake/bin:/Program Files/dcraw:/Program Files/nodejs:/ProgramData/chocolatey/bin:/Users/dominikschneider/AppData/Local/Programs/orca:/Program Files/Pandoc:/WINDOWS/System32/OpenSSH:/WINDOWS/system32:/WINDOWS:/WINDOWS/System32/Wbem:/WINDOWS/System32/WindowsPowerShell/v1.0:/Program Files/Microsoft VS Code/bin:/Program Files/Git LFS:/Program Files (x86)/Data Version Control:/Program Files/dotnet:/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/Program Files/Intel/Intel(R) Management Engine Components/DAL:/Program Files/Git/cmd:/Users/dominikschneider/AppData/Local/Programs/Python/Python37-32/Scripts:/Users/dominikschneider/AppData/Local/Programs/Python/Python37-32:/Users/Dominik Schneider/AppData/Local/atom/bin:/Users/Dominik Schneider/AppData/Roaming/npm:/Program Files (x86)/Nmap:/Users/dominikschneider/AppData/Local/Microsoft/WindowsApps:/Users/dominikschneider/AppData/Local/GitHubDesktop/bin:/Users/dominikschneider/AppData/Local/Programs/Microsoft VS Code Insiders/bin:/Users/dominikschneider/AppData/Local/atom/bin:/Users/dominikschneider/appdata/local/atom/bin"

WARNING: The data being saved is truncated to 1024 characters.

SUCCESS: Specified value was saved.
LT-db-extractor --config ..//cppcserver.config --outdir data/psII --exper doi
make: LT-db-extractor: Command not found
make: *** [Makefile:93: getpsII] Error 127

【问题讨论】:

  • 你应该试试./LT.exe
  • 感谢 Andreas 但同样的结果 make[2]: ./LT-db-extractor.exe: Command not found
  • 这些建议也不起作用stackoverflow.com/questions/2463037/…
  • 好吧,只是猜测。现在我看到windows路径是错误的。您应该使用 \ 而不是 /。而且我不喜欢那个警告的样子。设置后最好打印PATH并验证。
  • 我不确定在路径前面是否重要。这个/Users/dominikschneider/Miniconda3/envs/plantcv/Scripts 已经在里面了。

标签: python windows makefile conda


【解决方案1】:

最后,我发现我有些 _ 和 - 困惑。我会注意到,在使用 Windows 终端的 Win 10 上,我什至不需要 SHELL=CMD 或 SHELLARGS 即可。似乎在 WSL 和 win conda shell 之间完美转换!

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多