Package Management#

Learning Objectives#

  • Understand the basics of Julia’s package management system

  • Add, remove, and update packages using Julia’s package manage (Pkg)

  • View and manage installed packages in your Julia environment

  • Explore common Julia packages and their functionalities

  • Implement package management best practices in your Julia projects

As seen at various points throughout this course, Julia makes use of packages to provide access to key functionality that you will likely you commonly within your workflow.

Overview of Julia’s Package System#

Julia has a rich ecosystem of packages, enabling access to extended functionality for a number of various tasks, including data analysis, visualisation, and scientific computing to name a few. The Julia package manager (Pkg) is a powerful tool for managing these packages.

The use of the Pkg manager allows for effective package management, making it easy to install, update, and manage dependencies.

Using Packages#

Adding Packages#

To add a package, use the Pkg.add function. For example, to add the Plots.jl package:

using Pkg
Pkg.add("Plots")

Of note is that before you are able to use a package you first need to import it, which in Julia can be achieved with the use of ‘using `. In fact within Julia Pkg is also a package and so needs to be imported before you are then able to import other packages.

Removing Packages#

Removing packages can be achieved with the use of Pkg.rm. For example to remove the package “Plots” we could make use of the command Pkg.rm("Plots")

Updating Packages#

Packages can be updated to their latest version with the use of the Pkg.update, with the command to update “Plots” being used Pkg.update("Plots").

View Installed Packages#

To view a list of all the installed packages, the command Pkg.status() can be used.

Pkg.status()

Overview of Common Packages in Julia#

Julia has a rich ecosystem of packages that cater to various needs such as data manipulation, visualization, scientific computing, and more. Below is an overview of some commonly used packages along with links to detailed resources for each package.

1. DataFrames.jl#

DataFrames.jl provides tools for working with tabular data, similar to pandas in Python or data.frame in R. It is essential for data manipulation and analysis.

DataFrames.jl

2. Plots.jl#

Plots.jl is a powerful and flexible plotting package in Julia. It supports multiple backends and is widely used for creating a variety of visualizations.

Plots.jl

3. CSV.jl#

CSV.jl is a fast and reliable package for reading and writing CSV files. It integrates seamlessly with DataFrames.jl for handling tabular data.

CSV.jl

4. JuliaDB.jl#

JuliaDB.jl is designed for working with large datasets. It provides powerful tools for data manipulation and analysis, optimized for performance.

JuliaDB.jl

5. JuMP.jl#

JuMP.jl is a domain-specific modelling language for mathematical optimization embedded in Julia. It is used for linear programming, non-linear programming, and other optimization problems.

JuMP.jl

6. Distributions.jl#

Distributions.jl provides a large collection of probability distributions and related functions. It is useful for statistical modelling and probabilistic computations.

Distributions.jl

7. Flux.jl#

Flux.jl is a machine learning library in Julia. It is designed to be easy to use while being highly extensible, providing tools for building and training neural networks.

Flux.jl

8. Makie.jl#

Makie.jl is a high-performance plotting library for data visualization. It provides a powerful and flexible interface for creating complex visualizations.

Makie.jl

9. HTTP.jl#

HTTP.jl is a package for handling HTTP requests and responses. It is useful for web development, API interactions, and network programming.

HTTP.jl

10. Gadfly.jl#

Gadfly.jl is a plotting and data visualization system inspired by ggplot2 in R. It is great for creating complex, aesthetically pleasing plots.

Gadfly.jl

By using the above links, you can explore more about each package and learn how to effectively use them in Julia.