Ошибка при электронном восстановлении последовательного порта в Windows

Я разрабатываю проект с помощью Electron и serialport.

Библиотека последовательного порта не работает автоматически. Поискав в Readme.md, я выяснил, что необходимо перекомпилировать библиотеку для версии Electron для NodeJS, используя electronics-rebuild. (Вставка этого скрипта в package.json: "install": "electron-rebuild").

Для перестройки электронов требуется установленный на компьютере питон, поэтому я установил его через инструменты-сборки-окна. (установлено глобально)

Итак, теперь, когда я запускаю команду npm install, я получаю эту ошибку:

× Rebuild Failed
An unhandled error occurred inside electron-rebuild
gyp ERR! configure error
gyp ERR! stack Error: spawn C:\Users\Leonardo Guimar�es\.windows-build-tools\python27\python.exe ENOENT
gyp ERR! stack     at exports._errnoException (util.js:1022:11)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
gyp ERR! stack     at onErrorNT (internal/child_process.js:359:16)
gyp ERR! stack     at _combinedTickCallback (internal/process/next_tick.js:74:11)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:98:9)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "D:\\nodejs\\node.exe" "D:\\ElectronWorkspace\\PATH_TO_App\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=1.5.0" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=serialport" "--module_path=D:\\ElectronWorkspace\\PATH_TO_App\\node_modules\\serialport\\build\\Release" "--host=https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7"
gyp ERR! cwd D:\ElectronWorkspace\PATH_TO_App\node_modules\serialport
gyp ERR! node -v v6.9.4
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok

Failed with exit code: 1

Error: gyp ERR! configure error
gyp ERR! stack Error: spawn C:\Users\Leonardo Guimar�es\.windows-build-tools\python27\python.exe ENOENT
gyp ERR! stack     at exports._errnoException (util.js:1022:11)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
gyp ERR! stack     at onErrorNT (internal/child_process.js:359:16)
gyp ERR! stack     at _combinedTickCallback (internal/process/next_tick.js:74:11)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:98:9)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "D:\\nodejs\\node.exe" "D:\\ElectronWorkspace\\PATH_TO_App\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=1.5.0" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=serialport" "--module_path=D:\\ElectronWorkspace\\PATH_TO_App\\node_modules\\serialport\\build\\Release" "--host=https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7"
gyp ERR! cwd D:\ElectronWorkspace\PATH_TO_App\node_modules\serialport
gyp ERR! node -v v6.9.4
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok

Failed with exit code: 1
    at SafeSubscriber.obs.subscribe.e [as _error] (D:\ElectronWorkspace\PATH_TO_App\node_modules\spawn-rx\lib\index.js:311:43)
    at SafeSubscriber.__tryOrUnsub (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:223:16)
    at SafeSubscriber.error (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:184:26)
    at Subscriber._error (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:128:26)
    at Subscriber.error (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:102:18)
    at MapSubscriber.Subscriber._error (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:128:26)
    at MapSubscriber.Subscriber.error (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:102:18)
    at SafeSubscriber.pipesClosed.subscribe [as _next] (D:\ElectronWorkspace\PATH_TO_App\node_modules\spawn-rx\lib\index.js:284:42)
    at SafeSubscriber.__tryOrSetError (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:232:16)
    at SafeSubscriber.next (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:174:27)
    at Subscriber._next (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:125:26)
    at Subscriber.next (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:89:18)
    at ReduceSubscriber._complete (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\operator\reduce.js:116:30)
    at ReduceSubscriber.Subscriber.complete (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:114:18)
    at MergeAllSubscriber._complete (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\operator\mergeAll.js:94:30)
    at MergeAllSubscriber.Subscriber.complete (D:\ElectronWorkspace\PATH_TO_App\node_modules\rxjs\Subscriber.js:114:18)

Как я могу скомпилировать эту библиотеку? Заранее спасибо!


person LeonardoGuimaraes    schedule 01.02.2017    source источник


Ответы (3)


Установите инструменты сборки Windows

npm install --global --production windows-build-tools 

or

 npm --add-python-to-path='true' --debug install --global windows-build-tools

затем установите переменные пути

setx PYTHON "%USERPROFILE%\.windows-build-tools/python27/python.exe"

set PYTHON

set PYTHON поможет вам проверить, правильно ли он настроен.

Этого недостаточно, установите глобальную перестройку электронов в файлы вашего проекта.

npm install -g electron-prebuilt  

npm install --save serialport

Нам нужно перестроить последовательный порт для работы с электроном. Для этого нам необходимо установить электрон-ребилд:

npm install --save-dev electron-rebuild 

Последний шаг - снова запустить электронное восстановление только в корневом> каталоге приложения:

 ./node_modules/.bin/electron-rebuild
person Kevin Muchwat    schedule 21.03.2019

Мне удалось скомпилировать serialport в Windows 10 x64 для Electron 1.4.14, выполнив следующие действия. Это сработало неделю назад, поэтому я не совсем уверен, что за это время что-то изменилось.

Сначала мне понадобился Windows 10 SDK, C ++ Common Tools (включены в Visual Studio Community 2015) для electron-rebuild. Также требуется Python 2.x. Затем я установил electron-rebuild и serialport с помощью npm (используйте параметр --save-dev).

Затем я удалил файлы в node_modules/serialport/build/Release/* в папке моего приложения и, наконец, перейду в папку node_modules/.bin в вашем проекте и запустил команду:

electron-rebuild -v 1.4.14 -e node_modules/electron-prebuilt -f и файлы, которые я удалил, появились снова, но были восстановлены для текущей версии. Обязательно укажите правильную версию Electron, которую вы используете.

person FDeitelhoff    schedule 02.02.2017

У меня это работает.

npm config set python /path/to/executable/python2.7

А потом попробуй.

npm install
person Elizabeth Alcalá    schedule 04.05.2018