我正在尝试使用以下代码示例来使IEx.pry工作:
require IEx;
defmodule Example do
def double_sum(x, y) do
IEx.pry
hard_work(x, y)
end
end
Example.double_sum(1, 2)
当我运行它时,我收到以下错误:
Cannot pry #PID<0.106.0> at lib/example.ex:5. Is an IEx shell running? If you are Windows, you may need to start IEx with the --werl flag.
作为回应,我使用--werl启动了iex并打开了erlang shell。
在erlang shell中,我尝试更改目录,以便启动该文件。我这样做是通过输入:
cd(c:/Users/william/Desktop/example)
我收到以下错误:
(SyntaxError) iex:1: keyword argument must be followed by space after: c:
答案 0 :(得分:3)
假设模块代码位于"c:/Users/william/Desktop/example.ex"
,可以输入iex
并从那里强制编译:
iex> c "c:/Users/william/Desktop/example.ex"
Request to pry #PID<0.89.0> at /tmp/a.ex:5
defmodule Example do
def double_sum(x, y) do
IEx.pry
x + y
end
Allow? [Yn] y
Interactive Elixir (1.5.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
pry(1)>
按下"y"
后,您输入了pry
个提示。
另一种选择是使用mix
来管理源代码,甚至是这样简单的源代码。 mix
new将创建新包。要在IEx.pry
中启用mix
支持,应在mix
之前运行iex -S
个任务:
iex -S mix # for just iex in mix environment
或:
iex -S mix phoenix.server
在phoenix应用程序中启用IEx.pry
支持。
旁注:require IEx
之后的分号是多余的并且是代码气味。