回答編集履歴

5

軽微な修正

2018/02/25 12:01

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -218,7 +218,7 @@
218
218
 
219
219
 
220
220
 
221
- pyex.ex の `:python.start( [ python_path: 'lib' ] )` に以下のように `python: ...` オプションを追加する。
221
+ Python への path がわかったら、pyex.ex の `:python.start( [ python_path: 'lib' ] )` に以下のように `python: ...` オプションを追加する。
222
222
 
223
223
 
224
224
 

4

kerasのエラーについて回答に追記しました(追記2のところ)

2018/02/25 12:01

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- **2018/2/25 追記**
53
+ **追記1**
54
54
 
55
55
 
56
56
 
@@ -179,3 +179,59 @@
179
179
  - ファイル名 lib/sample.py → lib/py_sample.py
180
180
 
181
181
  - Elixir コード中の `:python.stop` → `:python.stop( py_exec )`
182
+
183
+
184
+
185
+ **追記2**
186
+
187
+
188
+
189
+ > :python, :"exceptions.ImportError", 'No module named keras.models', [{"/Users/tmsmac/pyex/lib/py_predict_sin.py"
190
+
191
+
192
+
193
+ これは Python 側のエラーですね。内容は `python` が py_predict_sin.py を実行しようとしたところ、`keras.models`モジュールが見つからなかった。
194
+
195
+
196
+
197
+ おそらくお使いのマシンに Python の環境がいくつかインストールされていて、pyex.ex で `:python.start( [ python_path: 'lib' ] )` を呼んだ時に使われる Python 環境が、keras単品で動かす時の Python 環境とは違うのだと思います。(keras 用でないので keras を見つけられない)
198
+
199
+
200
+
201
+ keras単品で動かす前に実行するコマンドはありますか?(例:`activate 環境名`) もしあるなら、そのコマンドを実行してから、`iex -P mix` を実行してください。
202
+
203
+
204
+
205
+ もしそれでも直らないようなら以下も試してください。
206
+
207
+
208
+
209
+ ```
210
+
211
+ $ kerasを動かす前に実行するコマンド(例:`activate 環境名`)を実行
212
+
213
+ $ which python
214
+
215
+ ここに Python インタープリタへの path が表示される(例: `/Users/tmsmac/anaconda/envs/myenv/bin/python`)
216
+
217
+ ```
218
+
219
+
220
+
221
+ pyex.ex の `:python.start( [ python_path: 'lib' ] )` に以下のように `python: ...` オプションを追加する。
222
+
223
+
224
+
225
+ ```elixir
226
+
227
+ def predict() do
228
+
229
+ { :ok, py_exec } = :python.start( [ python: '上で調べたPythonインタープリタへのpath',
230
+
231
+ python_path: 'lib' ] )
232
+
233
+ ```
234
+
235
+
236
+
237
+ iex で `recompile` してから `Pyex.predict()` を再度実行する。

3

Qiita の記事の編集リクエストの内容を追記しました

2018/02/25 11:57

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -170,8 +170,12 @@
170
170
 
171
171
 
172
172
 
173
- あと、いままでのエラーとは関係ないのですが、Qiita の記事の③ElixirからPythonを呼び出すの部分でファイル名などの間違いを見つけたので、記事に対する編集リクエストを提出しました。以下 URL で左に赤線が表示されている内容は緑線の内容に変更する必要がありますので注意してください。
173
+ あと、いままでのエラーとは関係ないのですが、Qiita の記事の③ElixirからPythonを呼び出すの部分でファイル名などの間違いを見つけたので、記事に対する編集リクエストを提出しました。[こちら編集リクエスト](https://qiita.com/piacere/items/c1af7b6ce472db83cff6/patches/44331?type=html)で左に赤線が表示されている内容は緑線の内容に変更する必要がありますので注意してください。
174
174
 
175
175
 
176
176
 
177
+ **修正内容**
178
+
177
- - https://qiita.com/piacere/items/c1af7b6ce472db83cff6/patches/44331?type=html
179
+ - ファイル名 lib/sample.py → lib/py_sample.py
180
+
181
+ - Elixir コード中の `:python.stop` → `:python.stop( py_exec )`

2

わかりやすさのために文章を少し修正しました

2018/02/25 04:54

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- こちらで試してみたところ、Elixir のプロジェクトを日本語のディレクトリ配下に置くと同じエラーが起こりました。試しに pyex ディレクトリを、別の、パスに日本語が含まれていない場所に移動して、再度、`iex -S mix` を実行してください。
73
+ こちらで試したところ、Elixir のプロジェクトを日本語のディレクトリ配下に置くと同じエラーが起こりました。試しに pyex ディレクトリを、別の、パスに日本語が含まれていない場所に移動して、再度、`iex -S mix` を実行してください。
74
74
 
75
75
 
76
76
 
@@ -170,7 +170,7 @@
170
170
 
171
171
 
172
172
 
173
- あと、いままでのエラーとは関係ないのですが、③ElixirからPythonを呼び出すの部分でファイル名などの間違いを見つけたので、Qiita の記事編集リクエストを提出しました。以下の URL で左に赤線が表示されている内容は緑線の内容に変更する必要がありますので注意してください。
173
+ あと、いままでのエラーとは関係ないのですが、Qiita の記事の③ElixirからPythonを呼び出すの部分でファイル名などの間違いを見つけたので、記事に対する編集リクエストを提出しました。以下の URL で左に赤線が表示されている内容は緑線の内容に変更する必要がありますので注意してください。
174
174
 
175
175
 
176
176
 

1

コンパイルエラー(Could not compile dependency :erlport)について追記しました

2018/02/25 04:47

投稿

tatsuya6502
tatsuya6502

スコア2035

test CHANGED
@@ -45,3 +45,133 @@
45
45
  (あとは、③ElixirからPythonを呼び出すに書かれているコマンドを実行する)
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+
52
+
53
+ **2018/2/25 追記**
54
+
55
+
56
+
57
+ > pyex.exを作ったディレクトリではなくその上のlibやmix.exsがあるディレクトリで実行するべきだったという事ですね?
58
+
59
+
60
+
61
+ はい。そうです。
62
+
63
+
64
+
65
+ > ** (Mix) Could not compile dependency :erlport, "/Users/tmsmac/.mix/rebar3 bare compile --paths "/Users/tmsmac/Google ドライブ/Elixir/pyex/_build/dev/lib/*/ebin"" command failed.
66
+
67
+
68
+
69
+ このエラーは erlport パッケージを rebar3 というツールでビルドしようとしたが、失敗したという内容です。どういう理由で失敗したか表示されてないので困りますね。
70
+
71
+
72
+
73
+ こちらで試してみたところ、Elixir のプロジェクトを日本語のディレクトリ配下に置くと同じエラーが起こりました。試しに pyex ディレクトリを、別の、パスに日本語が含まれていない場所に移動して、再度、`iex -S mix` を実行してください。
74
+
75
+
76
+
77
+ ```
78
+
79
+ $ docker run -it --rm -v $HOME/code:/code elixir bash
80
+
81
+ root@df4a64a9ce1d:/# apt update
82
+
83
+ root@df4a64a9ce1d:/# apt install python python-pip
84
+
85
+ root@df4a64a9ce1d:/# pip install erlport
86
+
87
+
88
+
89
+ root@df4a64a9ce1d:/# cd /code/pyex
90
+
91
+ root@df4a64a9ce1d:/code/pyex# mix deps.clean --all
92
+
93
+ * Cleaning erlport
94
+
95
+
96
+
97
+ root@df4a64a9ce1d:/code/pyex# cd /code
98
+
99
+ root@df4a64a9ce1d:/code# mkdir 'google drive'
100
+
101
+ root@df4a64a9ce1d:/code# mkdir 'google ドライブ'
102
+
103
+ root@df4a64a9ce1d:/code# cp -rp pyex google\ drive/
104
+
105
+ root@df4a64a9ce1d:/code# cp -rp pyex google\ ドライブ/
106
+
107
+
108
+
109
+ root@df4a64a9ce1d:/code# cd google\ drive/pyex/
110
+
111
+ root@df4a64a9ce1d:/code/google drive/pyex# mix deps.get
112
+
113
+ Resolving Hex dependencies...
114
+
115
+ Dependency resolution completed:
116
+
117
+ erlport 0.9.8
118
+
119
+ * Getting erlport (Hex package)
120
+
121
+ root@df4a64a9ce1d:/code/google drive/pyex# iex -S mix
122
+
123
+ Erlang/OTP 20 [erts-9.2.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
124
+
125
+
126
+
127
+ ===> Compiling erlport
128
+
129
+ Compiling 1 file (.ex)
130
+
131
+ Generated pyex app
132
+
133
+ Interactive Elixir (1.6.1) - press Ctrl+C to exit (type h() ENTER for help)
134
+
135
+ iex(1)> ^g
136
+
137
+ User switch command
138
+
139
+ --> q
140
+
141
+
142
+
143
+ root@df4a64a9ce1d:/code/google drive/pyex# cd ../../google\ ドライブ/pyex/
144
+
145
+ root@df4a64a9ce1d:/code/google ドライブ/pyex# mix deps.get
146
+
147
+ Resolving Hex dependencies...
148
+
149
+ Dependency resolution completed:
150
+
151
+ erlport 0.9.8
152
+
153
+ * Getting erlport (Hex package)
154
+
155
+ root@df4a64a9ce1d:/code/google ドライブ/pyex# iex -S mix
156
+
157
+ Erlang/OTP 20 [erts-9.2.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
158
+
159
+
160
+
161
+ ===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump
162
+
163
+ ===> When submitting a bug report, please include the output of `rebar3 report "your command"`
164
+
165
+ ** (Mix) Could not compile dependency :erlport, "/root/.mix/rebar3 bare compile --paths "/code/google ドライブ/pyex/_build/dev/lib/*/ebin"" command failed. You can recompile this dependency with "mix deps.compile erlport", update it with "mix deps.update erlport" or clean it with "mix deps.clean erlport"
166
+
167
+ root@df4a64a9ce1d:/code/google ドライブ/pyex#
168
+
169
+ ```
170
+
171
+
172
+
173
+ あと、いままでのエラーとは関係ないのですが、③ElixirからPythonを呼び出すの部分でファイル名などの間違いを見つけたので、Qiita の記事の編集リクエストを提出しました。以下の URL で左に赤線が表示されている内容は緑線の内容に変更する必要がありますので注意してください。
174
+
175
+
176
+
177
+ - https://qiita.com/piacere/items/c1af7b6ce472db83cff6/patches/44331?type=html