Electron可以用来把Web程序包装成各种平台的客户端程序,编译和打包过程也是充满挑战。
一方面是因为所使用的库和软件,有些仍然在不断更新,有些却早已经停止更新了,从而导致版本依赖的不一致问题。
比较复杂的架构是,前端用nodejs实现,后端用python实现,中间通信可以用:zerorpc,ipc等。其中zerorpc的效率高,但最容易出问题,因为zerorpc使用了zeromq, zerorpc已经停止更新了,两者之间的依赖也早已停止更新。
当前conda的稳定版本,默认包含的python是3.7, 由于程序依赖问题,需要降级到3.6, 可以直接通过:
conda install python=3.6
来实现。
默认的conda和npm的源,可能安装各个包,会比较慢,最好更新成国内源:
conda:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
npm:
npm config set registry http://registry.npm.taobao.org
NODE_MODULE_VERSION 版本不一致问题
可能会报某个库的node版本与当前的node版本不一致
The module '/home/dev/Documents/project/node_web_kit/node_modules/node-pty/build/Release/pty.node'
was compiled against a different Node.js version using NODE_MODULE_VERSION 46.
This version of Node.js requires NODE_MODULE_VERSION 51. Please try re-compiling or re-installing
遇到这种问题,有两种解决方式:
1). 调整系统安装的node版本,让两者保持一致
2). 用Native Node Modules方式。
就是让相应的模块,可以保留自己的Node版本,通过rebuil的方式,来让不同的版本和谐共处。
npm install --save-dev electron-rebuild
# Every time you run "npm install", run this:
./node_modules/.bin/electron-rebuild
# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd
具体参照以下链接:using-native-node-modules
If you want to use `zeromq` inside your [Electron](http://electron.atom.io/) application
it needs to be rebuild against Electron headers. We ship prebuilt binaries for Electron so you won't need to build `zeromq` from source.
You can rebuild `zeromq` manually by running:
```bash
npm rebuild zeromq --runtime=electron --target=1.4.5
Where target
is your desired Electron version. This will download the correct binary for usage in Electron.
系统的Electron用的是3.1.13版本, 但是rebuild是,能找到的target版本,最大就是3.1.0版本,所以就会用到上面提的Native Node Module的方法。
npm rebuild zeromq --runtime=electron --target=3.1.0
./node_modules/.bin/electron-rebuild
通过"npm config ls" 查看npm的安装路径,新建etc目录,创建npmrc文件。
python=F:\Python27\python.exe
也可以通过命令,修改配置:
npm config set python python2.7
Nodejs, Python通信可以采用的方式
zerorpc
request-promise
python-shell
stdin.write()
参考:
https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md
https://github.com/zeromq/zeromq.js#rebuilding-for-electron
https://github.com/fyears/electron-python-example
https://github.com/fyears/electron-python-example/blob/master/old-post-backup/README.md
https://www.sohamkamani.com/blog/2015/08/21/python-nodejs-comm/
https://www.quora.com/How-do-I-send-data-from-Node-js-to-Python-and-get-back-JSONN-data-from-Python-to-Node-jss
https://zhuanlan.zhihu.com/p/37999476
https://mlln.cn/2018/01/08/electron%E4%BD%9C%E4%B8%BApython%E7%95%8C%E9%9D%A2%E5%BC%80%E5%8F%91%E5%85%A5%E9%97%A8/
https://www.npmjs.com/package/request-promise
https://www.techiediaries.com/python-electron-tutorial/
https://blog.csdn.net/duanaibing3017/article/details/84099268
https://medium.com/@abulka/electron-python-4e8c807bfa5e
https://nodejs.org/zh-cn/download/releases/
https://blog.csdn.net/jbguo/article/details/90701266
https://www.kancloud.cn/idcpj/python/1012428
https://blog.csdn.net/u014563989/article/details/78013804
https://stackoverflow.com/questions/32158738/python-on-electron-framework
https://electronjs.org/docs
https://blog.csdn.net/jishuqianjin/article/details/81778407