Windows上的电子重建串行端口出错

时间:2017-02-01 12:44:05

标签: python node.js windows electron node-serialport

我正在开发一个包含Electronserialport的项目。

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)

如何编译此库? 提前谢谢!

3 个答案:

答案 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-rebuildelectron-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