Wpis z mikrobloga

Witam specjalistów od linuxa. Jak zainstalować skrypty pythona żeby były na odpowiedniej ścieżce?

WARNING: The script is installed in '/home/pi/.local/bin' which is not on PATH.

Ogólnie instaluję wszystko z jednego skryptu na świeżych systemach. Na jednym komputerze poszły do /usr/bin, na drugim .local/bin, na trzecim można odpalić z każdego miejsca.

python3 -m pip install - tak zrobiłem na trochę różnych maszynach

#raspberrypi #python
  • 22
  • Odpowiedz
@PanManieglev: @KKK1337: @Igbt: dzięki panowie poradziłem sobie z dodaniem tych ścieżek. Tylko nie rozumiem, czemu takie coś mi się dzieje, czasami podmieniam tam pliki i na każdym kompie/raspberry są one w innym miejscu. Da się to jakoś ujednolicić przy instalacji?
  • Odpowiedz
@antek_akrobata: Tak jak ktoś wyżej pisał - użyj virtualenv i rób go tam, gdzie chcesz.
Jeśli masz problem z uruchomieniem programu - dodaj sobie ścieżkę do PATH.
Jeśli python nie widzi jakichś ścieżek, to interpreter pozwala na ustawienie ścieżek przeszukiwania modułów przy pomocy zmiennej środowiskowej PYTHONPATH.
  • Odpowiedz
@codeasap-pl: ścieżki sobie dodałem do PATH i teraz śmiga, ale wydaje mi się, że cron dalej wymaga pełnej ścieżki (na każdym kompie jest inna) więc nie mogę pliku crona używać uniwersalnie, tylko muszę go dopasowywać pod każdy komputer. ( ͡° ͜ʖ ͡°) O venv muszę jeszcze poczytać.
  • Odpowiedz
cron ma własną wartość PATH


@codeasap-pl: czyli jakbym to zmodyfikował to teoretycznie powinno to częściowo rozwiązać problem, obecnie wszystko mam wbite w crona ze ścieżką, inaczej nie odpala.

W /etc/crontab jest
  • Odpowiedz
@antek_akrobata: .local/bin masz prawdopodobnie dlatego, że używasz pip install jako zwykły user. Jeśli nie masz włączonego virtualenv, to domyślnie instaluje w ~/.local.
A cron ustawiasz jako który użytkownik? root? zwykły user?
  • Odpowiedz
@KKK1337: docker nie wszędzie się sprawdzi. On to robi na raspberry pi. Są też różne urządzenia (np. routery), które mają ograniczoną pojemność dysku. Poza tym to narzut konfiguracyjny i maintenance. Gość odpala po prostu skrypt python.
  • Odpowiedz
On to robi na raspberry pi.


@codeasap-pl: Pi 0..., nawet nie wiem czy ARMv6 obsługuje dockera. Na pozostałych kompach teoretycznie mogłoby pomóc, ale właśnie lepiej byłoby to prościej rozwiązać, np. wskazać pip gdzie ma kopiować jakieś pliki przy instalacji i tyle.
  • Odpowiedz
@codeasap-pl: rozumiem Twój punkt widzenia, ale mam dockera na malinie i korzystam, maintenace nie kosztuje mnie nic, a jak coś zdechnie a raczej tego nie robi, to i tak wszystko samo wstaje

@antek_akrobata: docker obsługuje każdą architekturę, co innego z obrazami, bo mogę być takie które nie obsługują jakiejś platformy, ale fakt może być to za dużo dla Pi 0, chociaż pod spodem taki kontenerek to nic innego
  • Odpowiedz
@KKK1337: Ale może ma własny kernel bez cgroups i może go nie chce zmieniać, a może ma jakąś specjalną dystrybucję z kernelem bez cgroups. Nie każde środowisko jest takie samo.
I może ma własny firewall, itd. A może też chce aktualizować system i nie przebudowywać żadnych dockerów. Kto wie.

A może chce zrozumieć dlaczego to działa tak, a nie inaczej i odnajduje w tym frajdę.
  • Odpowiedz