Проблема с созданием onnxruntime из исходного кода — FileNotFoundError

#python #windows #winapi #build #onnxruntime

#python #Windows #winapi #строить #время выполнения onnxruntime #сборка #onnxruntime

Вопрос:

Я пытаюсь создать onnxruntime из исходного кода, но я сталкиваюсь со следующей проблемой.

После выполнения

 git clone https://github.com/microsoft/onnxruntime.git
cd onnxruntime
./build.bat
  

Я сталкиваюсь со следующей ошибкой

 2020-08-31 11:14:05,414 Build [DEBUG] - Defaulting to running update, build [and test for native builds].
2020-08-31 11:14:05,414 Build [INFO] - Build started
2020-08-31 11:14:05,414 Build [DEBUG] - Running subprocess in 'C:Usersxxxonnxruntime'
['git', 'submodule', 'sync', '--recursive']
Traceback (most recent call last):
  File "C:Usersxxxonnxruntime\toolsci_buildbuild.py", line 1795, in <module>
    sys.exit(main())
  File "C:Usersxxxonnxruntime\toolsci_buildbuild.py", line 1603, in main
    update_submodules(source_dir)
  File "C:Usersxxxonnxruntime\toolsci_buildbuild.py", line 409, in update_submodules
    run_subprocess(["git", "submodule", "sync", "--recursive"], cwd=source_dir)
  File "C:Usersxxxonnxruntime\toolsci_buildbuild.py", line 400, in run_subprocess
    completed_process = subprocess.run(
  File "C:UsersxxxAnaconda3libsubprocess.py", line 489, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:UsersxxxAnaconda3libsubprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:UsersxxxAnaconda3libsubprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
  

Я попытался уточнить версию Visual Studio, хотя я не уверен, что это проблема. Добавление тега --msvc 16.7.2 приводит к той же ошибке. Это похоже на довольно общее сообщение об ошибке, возможно, не относящееся к сборке onnxruntime.

Использование административных привилегий не помогает.

В чем причина этой проблемы и что мне нужно сделать, чтобы ее устранить?

Ответ №1:

Вы должны использовать —recursive для загрузки всех зависимых подмодулей:

 git clone —recursive https://github.com/microsoft/onnxruntime.git
  

Если вы хотите создать его для Visual Studio, вам следует открыть «Командная строка разработчика для VS 2017» для Visual Studio 2017 или «Командная строка разработчика для VS 2019» для Visual Studio 2019.
Если вы используете Visual Studio 2019, вам следует добавить эту команду в конец вашей команды --cmake_generator "Visual Studio 16 2019" , например:

 cd onnxruntime    
build.bat --cmake_generator "Visual Studio 16 2019"
  

Ответ №2:

Попробуйте использовать —recursive для загрузки всех зависимых подмодулей. Что-то вроде: git clone —recursive https://github.com/microsoft/onnxruntime.git cd onnxruntime ./build.bat