Closed LucasHaug closed 3 years ago
Gosto da ideia de colocar as dependências em um venv, fica mt mais fácil de saber o que o projeto precisa pra funcionar e faz parte do manual de boas práticas do python.
Não sei no geral como o ROS se comporta rodando a partir de um venv, não se venv continua sendo uma boa ideia rodando por baixo do ROS, vou persquisar a respeito. Vou ver tb se existe um jeito de fazer o rosdep
puxar o requirements.txt pra já resolver todas as dependências com um comando só.
Uma ressalva pro script do jeito que ele está, eu ainda tenho que organizar as dependências desse script, pq eu copiei e colei descaradamente do repo do nRFDongle, o script pra simulação não precisa de tudo que tá aí (eu tava me perguntando pq cargas dágua tô usando numpy nessa brincadeira, a primeira coisa que eu faço num projeto python é colocar import numpy as np
).
Vou levantar todas as infos necessárias.
No mais, acho que essa é uma boa ideia, #partiu implementar
Um último parêntesis que me esqueci no primeiro post
Se estiver usando fish tem que usar o activate.fish.
Pra rodar essas coisas no fish, costumo usar o bass
Ahh eh que o activate.fish já existe ali, aí nem precisa do bass.
Sobre isso: https://github.com/ThundeRatz/vss_simulation/blob/8db4829085f2700ca1255c4610759212b4e25ed2/scripts/usb_dongle.py#L14
Tava conversando com o @d-nery e aí ele falou algumas coisas sobre as dependências do script. Bom, primeiro seria necessário instalar
python3-venv
. Então seria necessário criar um ambiente virtual pra rodar o script, estando no diretório que está o script, fazendo:O segundo
venv
, é o nome da pasta onde tudo do ambiente será guardado, ela tem que ir pro.gitignore
.Então é necessário "ativar" o ambiente virtual com:
Se estiver usando
fish
tem que usar oactivate.fish
.Dá primeira vez é necessário instalar todos as dependências na mão com o
pip
, por exemplo:Isso vai instalar as dependências no seu ambiente virtual.
Fazendo
pip freeze
no terminal, você consegue ver as dependências do seu script. Então é possível guardar isso em um arquivo, por exemplorequirements.txt
, esse arquivo tem que ir pro GitHub. Com esse arquivo é possível instalar facilmente todas as dependências com:Para desativar o ambiente virtual é só fazer
deactivate
no terminal.A vantagem de fazer isso é que se facilita a instalação de dependências do script e também mantém um registro de qual versão de cada dependência se está utilizando no projeto, isso é bom também porque se tiver uma atualização não compatível das dependências se sabe qual a versão que é compatível.