--- title: How to use virtual environments date: 2022-06-19 lastmod: 2022-06-19 tags: code Tags: [python, R, julia] slug: using-virtual-environments author: Samuel Ortion lang: en status: published --- To not interfere with your os configuration and keep your project reproducible, you should use a virtual environment as long as possible. Virtual environment are a way to isolate your project from the rest of the system, and to avoid dependencies conflicts. ## Python Virtualenv Lets start by installing the virtualenv package. ```bash sudo apt install python3-venv ``` And now you can create venvs for your project: ```bash python3 -m venv .venv/myproject ``` It is a good practice not to create a virtualenv with name "venv", but to use a name that reflects the project you are working on, in order to see directly in which venv you are working. Now you can activate the virtualenv: ```bash source .venv/myproject/bin/activate ``` And deactivate it when you are done: ```bash deactivate ``` One other way to create a virtualenv is to use the `virtualenv` command. Once you installed python packages, you should create a snapshot of your project dependencies using: ```bash pip freeze > requirements.txt ``` That way, you can allow other people to use your project and installi its dependencies with the following command: ```bash pip install -r requirements.txt ``` You could also use conda, as a package manager, to create a virtualenv. ## R Virtualenv R also has its own virtualenv gestionnal system named packrat. First install packrat with R. ```R install.packages("packrat") ``` And create your virtual environment with: ```R packrat::init("myproject") ``` Similarly, you can then install packages: ```R install.packages("dplyr") ``` And create a snapshot of your dependencies with: ```R packrat::snapshot() ``` The dependency list is available in `packrat/packrat.lock`. ## Julia Virtualenv Julia venv is very similar to Python venv. First, you install the VirtualEnv package: ```bash julia -e 'using Pkg; Pkg.add("VirtualEnv")' ``` And add `~/.julia/bin` to your path: ```bash julia -e 'using VirtualEnv; VirtualEnv.comonicon_install_path()' ``` Then you can use `venv` to create a virtualenv for your project: ```bash venv .venv/myproject ``` And you can activate/deactivate it: ```bash source .venv/myproject/bin/activate deactivate ``` That's it ! ## References - [Python venv documentation](https://docs.python.org/3/library/venv.html) - [Packrat documentation](https://rstudio.github.io/packrat/) - [Julia venv documentation](https://juliapackages.com/p/virtualenv)