我正在开发一个包含Electron和serialport的项目。
serialport库不会自动运行。在Readme.md中搜索,我发现需要使用electron-rebuild库重新编译NodeJS版本的电子库。 (将此脚本插入package.json:"install": "electron-rebuild"
)。
电子重建需要在计算机中安装python,所以我通过windows-build-tools安装了。 (全球安装)
所以现在当我运行命令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)
如何编译此库? 提前谢谢!
答案 0 :(得分:1)
按照这些步骤,我设法在Windows 10 x64上为Electron 1.4.14编译serialport
。这个工作在一周前完成,所以我不确定在此期间是否有变化。
我首先需要{10}的Windows 10 SDK,C ++通用工具(包含在Visual Studio社区2015中)。{1}} Python 2.x也是必需的。然后我使用npm(使用--save-dev选项)安装了electron-rebuild
和electron-rebuild
。
然后我删除了我的应用程序文件夹中的serialport
中的文件,最后转到项目中的文件夹node_modules/serialport/build/Release/*
并运行命令:
node_modules/.bin
我删除的文件再次出现,但重建了实际版本。请务必指定您正在使用的正确电子版本。
答案 1 :(得分:0)
这适合我。
npm config set python /path/to/executable/python2.7
然后尝试。
npm install
答案 2 :(得分:0)
安装Windows构建工具
npm install --global --production windows-build-tools
或
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