I think it is a very common mistake with using statements. As package names are case-sensitive, a small typo in name, eg DataFrames: Dataframes, DataFrame, Dataframe, ..., results in an error message:
julia> using Dataframes
ERROR: ArgumentError: Package Dataframes not found in current path:
Run import Pkg; Pkg.add("Dataframes") to install the Dataframes package.
Stacktrace:
[1] require(into::Module, mod::Symbol)
@ Base ./loading.jl:874
in the next step the user will do the suggested solution, which will not work:
julia> import Pkg; Pkg.add("Dataframes")
Updating registry at ~/.julia/registries/General
ERROR: The following package names could not be resolved:
Dataframes (not found in project, manifest or registry)
I suggest to offer a different error message if there is an installed package with an similar name (in Stdlib or in Project deps), like:
julia> using Dataframes
ERROR: ArgumentError: Did you mean DataFrames? Your entry Dataframes is
not found in current path. Correct your entry and try again, or run
import Pkg; Pkg.add("Dataframes") to install the Dataframes package.
Stacktrace:
[1] require(into::Module, mod::Symbol)
@ Base ./loading.jl:868
If this is ok, I can offer to open a pull request (have already a first draft).
I think it is a very common mistake with using statements. As package names are case-sensitive, a small typo in name, eg DataFrames: Dataframes, DataFrame, Dataframe, ..., results in an error message:
in the next step the user will do the suggested solution, which will not work:
I suggest to offer a different error message if there is an installed package with an similar name (in Stdlib or in Project deps), like:
If this is ok, I can offer to open a pull request (have already a first draft).