2.3 KiB
Executable File
2.3 KiB
Executable File
| creation date | modification date | tags |
|---|---|---|
| 2024-08-22 | Thursday 22nd August 2024 09:17:34 |
Preamble
Notable Links
What are we doing?
Figuring out two things: a) what the hell is a virtual environment and b) how to get linux to quit complaining to me that I'm breaking system packages.
Why are we doing it?
I would like to do this the right way. I think what we've been doing isn't the way to really go.
Who cares?
Me. My poor computer.
What the fuck is Venv?
It's a way to separate environments of projects. This keeps dependencies working if versions change, or if dependencies break with new versions. This keeps every project with its own environment.
How to create an environment
I'm following this guy's tutorial.
pip3 list
#should be able ot find virtualenv
python3 -m venv beaglebone_env
#This caused me an issue at first. Said I needed to install apt install python3.12-venv
sudo apt install python3.12-venv
#worked!
python3 -m venv beaglebone_env
#actually activate the python environment
source beaglebone_env/bin/activate
>> (beaglebone_env) danesabo@danesabo-desktop: ~/Documents/python_environments
#the environment is successfully loaded and running! You can check where it is using "which python"
# You can leave the environment using
deactivate
#to delete the environment
rm -rf beaglebone_env/
We can create something called a 'requirements.txt'
This file allows us to recreate the environment quickly on another device.
#While in the environement you want to create a requirements list for
pip freeze > env_req.txt
# will create a requirements file with all required dependencies
# to install from a requirements list
pip install -r env_req.txt
There's another way to create a virtual environment, within a project.
mkdir my_project
python3 -m venv my_project/venv
source my_project/venv/bin/activate
#Then, this will activate the virtual environment within the project!
#This is the more common way to do virtual environments. It keeps the requirements and dependencies in the project, rather than in two different projects.
#Vritual environments are usually not synced to git projects though, but requirments documents are instead.
#Do NOT put project files in the virtual environement.