我对朱莉娅(例如今天)很陌生。我正在尝试使用使用AutomotiveDrivingModels软件包的软件包AutoEnvs
,但是当我运行using AutoEnvs
时遇到此错误
MethodError: no method matching parse(::Type{AutomotiveDrivingModels.LaneConnection}, ::SubString{String})
在AutomotiveDrivingModels包中的问题代码中,他们执行以下操作
定义struct LaneConnection
定义function Base.parse(::Type{LaneConnection}, line::String)
定义function advance!()
在循环中,conn = parse(LaneConnection, advance!())
-引发错误
我尝试在::Type{AutomotiveDrivingModels.LaneConnection}
的定义中使用Base.parse
,并在对parse
的调用中添加了程序包名称,但这无济于事。
基于该错误,看来advance!()
返回了SubString
-如果过载的parse()
期望String
可能是问题吗?
我还尝试根据推荐的here添加import Base: parse
,但没有帮助。
顺便说一下,这就是尝试安装ngsim_env的全部。请注意,the installation instructions在特定提交时需要较旧版本的AutomotiveDrivingModels。
系统:
Mac OS Mojave 10.14(已安装的xcode命令行工具)
朱莉娅:v0.7.0(对ngsim_env安装的限制)
谢谢!
编辑
有一次重新启动解释器并再次尝试using AutoEnvs
解决了该错误。但是我只需要进行全新安装并更改了一些其他软件包版本,现在此错误又回来了,重新启动不再有用。
答案 0 :(得分:1)
在母版上def user_params
puts "user_params runs"
unless params["user"].blank?
puts "main state user_params"
params.fetch(:user, {:email => params[:EMAIL], :password => params[:PASSWORD]}).permit(:email, :password)
end
puts "unless state in user_params"
params.fetch(:user, {"email"=>params[:EMAIL], "password"=>params[:PASSWORD]}).permit(:email, :password)
end
的签名是:
Base.parse
,它应该可以正常工作。您可以在https://github.com/sisl/AutomotiveDrivingModels.jl/blob/master/src/2d/roadway/roadways.jl#L45这里进行检查。
在软件包管理器中执行function Base.parse(::Type{LaneConnection}, line::AbstractString)
时,可以通过在软件包名称后添加#master
后缀来安装此版本的软件包。