2015-02-19 1 views
4

Я хотел бы импортировать пакет в любое время, когда я запускаю REPL. Размещение следующих в ~/.juliarc.jl является начало:Как импортировать пакет при запуске в Julia REPL, если он доступен

if isinteractive() 
    using Humanize 
end 

Но если я начинаю julia на машине без этого пакета, то РЕПЛ не запускается.

Так что я попытался следующие:

if isinteractive() 
    try 
     using Humanize 
    catch 
    end 
end 

, но из-за правила определения объема Джулии, теперь Humanize не доступен даже в глобальном пространстве имен.

Какое оптимальное решение?

ответ

3

Попробуйте следующее - немного рубить, пока что-то лучше не приходит в базе Julia:

humanize_exists = isdir(Pkg.dir("Humanize")) 
if humanize_exists && isinteractive(); using Humanize; end 
+0

Спасибо! Вы знаете, есть ли что-то лучше на пути? Когда я посмотрел, я не заметил никаких связанных открытых проблем. –

+1

Предложения для чего-то подобного идут под «условными модулями», например. https://github.com/JuliaLang/julia/issues/6195 и https://github.com/JuliaLang/julia/pull/6884. Я думаю, что попытка try-catch в стиле python по импорту никогда не произойдет из-за проблем с основными правилами. – IainDunning