回答編集履歴

1

コメントしたものと同じものを貼りました。

2019/07/03 07:52

投稿

suama
suama

スコア1997

test CHANGED
@@ -51,3 +51,87 @@
51
51
 
52
52
 
53
53
  もし、日本語を含むソースコードになっていたら、``# -*- coding: utf-8 -*-`` をソースの最初につけてみてはいかがでしょう。
54
+
55
+
56
+
57
+
58
+
59
+ ### コメントをいただいての追記
60
+
61
+
62
+
63
+ コメントに貼っていただいた pythonPath: のところは最初の投稿と違いますね。
64
+
65
+ ここは、ターミナルで "which python" と入力したときに表示されるものを貼ってくださいね。
66
+
67
+
68
+
69
+ わたしの環境だと、こうなりますので、
70
+
71
+
72
+
73
+ ```bash
74
+
75
+ % which python
76
+
77
+ /usr/local/bin/python
78
+
79
+ ```
80
+
81
+
82
+
83
+ こちらを使って、JavaScript側はこんな感じになります。
84
+
85
+
86
+
87
+ ```JavaScript
88
+
89
+ let { PythonShell } = require('python-shell');
90
+
91
+
92
+
93
+ const envelope = {"latitude":"15","longitude":"45","spot":"ああ"};
94
+
95
+
96
+
97
+ let options = {
98
+
99
+ mode: 'text',
100
+
101
+ pythonPath: '/usr/local/bin/python', // which python で表示された結果を指定してください!
102
+
103
+ pythonOptions: ['-u'], // get print results in real-time
104
+
105
+ scriptPath: '/home/kakimoto/M1/web/',
106
+
107
+ args: [envelope.latitude, envelope.longitude, envelope.spot]
108
+
109
+ };
110
+
111
+
112
+
113
+ PythonShell.run('test.py', options, function (err, results) {
114
+
115
+ if (err) throw err;
116
+
117
+ // results is an array consisting of messages collected during execution
118
+
119
+ console.log('results: %j', results);
120
+
121
+ });
122
+
123
+ ```
124
+
125
+
126
+
127
+ うまくいくと、こうなると思います....。
128
+
129
+
130
+
131
+ ```bash
132
+
133
+ node test.js
134
+
135
+ results: ["60.0","ああ"]
136
+
137
+ ```