Error in electron-rebuild serialport on Windows

寵の児 提交于 2019-12-11 06:52:07

问题


I am developing a project with Electron and serialport.

The serialport library doesn't work automatically. Searching in the Readme.md, I figure out that is needed to recompile the library for the NodeJS version of electron, using the electron-rebuild library. (Inserting this script in the package.json: "install": "electron-rebuild").

The electron-rebuild require a python installed in the computer, so I have installed through windows-build-tools. (installed globally)

So now when I run the command npm install I receive this error:

× 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)

How can I compile this library? Thanks in advance!


回答1:


I managed to compile serialport on Windows 10 x64 for Electron 1.4.14 following these steps. This worked a week ago so I'm not quite sure if something had changed in the meantime.

I needed Windows 10 SDK, C++ Common Tools (included in Visual Studio Community 2015) for electron-rebuild first. Python 2.x is required, too. Then I installed electron-rebuild and serialport using npm (use --save-dev option).

Then I deleted files in the node_modules/serialport/build/Release/* in my application folder and finally go to the folder node_modules/.bin in your project and run the command:

electron-rebuild -v 1.4.14 -e node_modules/electron-prebuilt -f and the files I deleted appeared again but rebuilt for the actual version. Be sure to specify the correct Electron version you're using.




回答2:


Install windows build tools

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

or

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

then set path variables

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

set PYTHON

set PYTHON helps you check if its set up correctly.

This is not enough install electron rebuild globally in your project files

npm install -g electron-prebuilt  

npm install --save serialport

We have to rebuild serialport to work with electron. To do this, we need to install electron-rebuild:

npm install --save-dev electron-rebuild 

The last step is to run electron-rebuild, once again, just in the root >directory of the app:

 ./node_modules/.bin/electron-rebuild



回答3:


This works for me.

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

And then try.

npm install


来源:https://stackoverflow.com/questions/41980175/error-in-electron-rebuild-serialport-on-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!