Julia'yı kullandığım kadarıyla, paket ithalatının yalnızca en üst düzeyde yapılabileceği izlenimi altındaydım. Bununla birlikte, aşağıdaki işleri yapmak için herhangi bir zor/gayri resmi yöntem bulamadı mı? Temel olarak, paketi koşullu olarak almak istiyorum. Paket yüklüyse, onu almak istiyorum, ancak yüklü değilse, onu eklemek istemiyorum (bu yüzden Julia otomatik olarak yüklemez). Üst düzey paketler içe aktarma
if Pkg.installed("my_package") != Void import my_package else ## DO NOT IMPORT my_package end
function load_if_installed(package_name)
if typeof(Pkg.installed(package_name)) == Void
println("package is not installed")
else
# load in package after parsing command
eval(parse("using $package_name"))
end
end
load_if_installed("PyPlot")
>
load_if_installed("AWS")
> package is not installed
Julia 0.4.5 AWS ile bu çalıştı yüklü değil:
Temiz numara; Ben her zaman meta programlamayı kullanıyorum, ama deyimi bir 'ayrıştırma' içinde sarmalamayı ve daha sonra onu çalışmak için 'eval' global kapsamından yararlanmayı düşünmemiştim! Teşekkürler! –