diff --git a/.gitignore b/.gitignore index e364185..df48b7d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ go/go.sum build/extraResources/java-app.jar build/extraResources/jre1.8.0_201/ python/.venv/ +python/*.spec +python/build/ +python/dist/ diff --git a/electron/config/bin.js b/electron/config/bin.js index bc9108b..987f73f 100644 --- a/electron/config/bin.js +++ b/electron/config/bin.js @@ -35,21 +35,26 @@ module.exports = { cmd: 'npm', args: ['run', 'build'], }, - go_build_w: { + go_w: { directory: './go', cmd: 'go', args: ['build', '-o=../build/extraResources/goapp.exe'], }, - go_build_m: { + go_m: { directory: './go', cmd: 'go', args: ['build', '-o=../build/extraResources/goapp'], }, - go_build_l: { + go_l: { directory: './go', cmd: 'go', args: ['build', '-o=../build/extraResources/goapp'], - } + }, + python_w: { + directory: './python', + cmd: 'pyinstaller', + args: ['-n=pyapp', '-F', './main.py'], + }, }, /** @@ -76,7 +81,11 @@ module.exports = { go_images: { dist: './public/images', target: './go/public/images' - } + }, + python_dist: { + dist: './python/dist', + target: './build/extraResources/py' + }, }, /** @@ -129,7 +138,6 @@ module.exports = { directory: './python', cmd: 'python', args: ['./main.py', '--port=7074'], - stdio: 'ignore', }, }, }; \ No newline at end of file diff --git a/electron/config/config.default.js b/electron/config/config.default.js index e70ca32..744a262 100644 --- a/electron/config/config.default.js +++ b/electron/config/config.default.js @@ -119,7 +119,7 @@ module.exports = (appInfo) => { /** * Cross-language service * 跨语言服务 - * 例如:执行go的二进制程序 + * 例如:执行go的二进制程序,默认目录为 ./extraResources/ */ config.cross = { go: { @@ -131,6 +131,8 @@ module.exports = (appInfo) => { python: { enable: false, name: 'pyapp', + cmd: './py/pyapp', + directory: './py', args: ['--port=7074'], appExit: true, }, diff --git a/package.json b/package.json index 9f3c704..5633094 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,10 @@ "dev-go": "ee-bin dev --serve=go", "dev-python": "ee-bin exec --cmds=python", "build-frontend": "ee-bin build --cmds=frontend && ee-bin move --flag=frontend_dist", - "build-go-w": "ee-bin build --cmds=go_build_w", - "build-go-m": "ee-bin build --cmds=go_build_m", - "build-go-l": "ee-bin build --cmds=go_build_l", + "build-go-w": "ee-bin build --cmds=go_w", + "build-go-m": "ee-bin build --cmds=go_m", + "build-go-l": "ee-bin build --cmds=go_l", + "build-python-w": "ee-bin build --cmds=python_w && ee-bin move --flag=python_dist", "start": "ee-bin start", "move": "ee-bin move --flag=go_static,go_config,go_package,go_images", "rd": "ee-bin move --flag=frontend_dist", diff --git a/python/flask.py b/python/flask.py new file mode 100644 index 0000000..455df1e --- /dev/null +++ b/python/flask.py @@ -0,0 +1,29 @@ +from flask import Flask, request, jsonify +import argparse + +print("__name__: ", __name__) + +# argparse +parser = argparse.ArgumentParser(description='Process some integers.') +parser.add_argument('--port', type=int, default=7074, help='The port number.') +args = parser.parse_args() + +app = Flask(__name__) + +# 定义路由和处理器 +@app.route('/', methods=['GET']) +def index(): + name = request.args.get('name', 'World') + return jsonify({'message': f'Hello, {name}!'}), 200 + + +@app.route('/hello', methods=['GET']) +def hello(): + name = request.args.get('name', 'World') + return jsonify({'message': f'Hello, {name}!'}), 200 + +if __name__ == '__main__': + app.run(port=args.port) + +# 控制台默认关闭输出信息,如果想要查看控制台输出,请单独启动服务 npm run dev-python +print("python server is running at port:", args.port) \ No newline at end of file diff --git a/python/main.py b/python/main.py index afc99b7..ade540e 100644 --- a/python/main.py +++ b/python/main.py @@ -11,19 +11,10 @@ args = parser.parse_args() @app.get("/") async def index(): - """ - 注册一个根路径 - :return: - """ return {"message": "Hello World"} - -@app.get("/info") -async def info(): - """ - 项目信息 - :return: - """ +@app.get("/hello") +async def hello(): return { "app_name": "FastAPI框架学习", "app_version": "v0.0.1" @@ -33,4 +24,4 @@ if __name__ == "__main__": uvicorn.run(app, host="127.0.0.1", port=args.port) # 控制台默认关闭输出信息,如果想要查看控制台输出,请单独启动服务 npm run dev-python -print("Serving at port", args.port) \ No newline at end of file +print("python server is running at port:", args.port) \ No newline at end of file