在Windows上从makefile运行.exe

时间:2020-09-16 00:01:10

标签: python windows makefile conda

我有一个包含命令行脚本的python软件包。在Windows上,成为在我的conda环境路径中安装的LT.exe。 我正在使用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

1 个答案:

答案 0 :(得分:0)

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