Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependências do script do dongle #1

Closed
LucasHaug opened this issue Jan 27, 2020 · 4 comments · Fixed by #9
Closed

Dependências do script do dongle #1

LucasHaug opened this issue Jan 27, 2020 · 4 comments · Fixed by #9
Assignees
Labels
enhancement New feature or request

Comments

@LucasHaug
Copy link
Member

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:

python3 - m venv venv

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:

source venv/bin/activate

Se estiver usando fish tem que usar o activate.fish.

Dá primeira vez é necessário instalar todos as dependências na mão com o pip, por exemplo:

pip install numpy

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 exemplo requirements.txt, esse arquivo tem que ir pro GitHub. Com esse arquivo é possível instalar facilmente todas as dependências com:

pip install -r requirements.txt

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.

@FelipeGdM FelipeGdM self-assigned this Jan 27, 2020
@FelipeGdM
Copy link
Member

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

@FelipeGdM
Copy link
Member

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

@LucasHaug
Copy link
Member Author

LucasHaug commented Jan 27, 2020

Ahh eh que o activate.fish já existe ali, aí nem precisa do bass.

@LucasHaug
Copy link
Member Author

LucasHaug commented Jan 28, 2020

Eu não sabia das coisas que eu falei ali do venv, por isso fiz um resuminho dos passos, aí coloquei isso em um post (basicamente a mesma coisa que falei ali em cima), se alguém tiver alguma coisa pra completar por favor fala lá.

@FelipeGdM FelipeGdM added this to the Pré Iron Cup milestone Feb 5, 2020
@FelipeGdM FelipeGdM removed this from the Pré Iron Cup milestone Mar 16, 2020
FelipeGdM added a commit that referenced this issue Oct 2, 2020
@lucastrschneider lucastrschneider added the enhancement New feature or request label Oct 3, 2020
@lucastrschneider lucastrschneider linked a pull request Oct 3, 2020 that will close this issue
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants