Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Tematy związane z oprogramowaniem, instalacją, konfiguracją
Awatar użytkownika
olk777
Posty: 30
Rejestracja: 10 lutego 2018, 17:29

Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: olk777 »

Mam pytanie czy instalacja pythona w wersji 2 jest możliwa na Debianie ( bookworm ) ... a dokładnie czy możliwa jest poprawna
praca w/w ?. Bo niby udało mi się zainstalować tą wersję na Bookworm python v2.7.18 co prawda niezalecanym sposobem tzn z innego repozytorium które na chwilę włączyłem dokładnie z Debiana Bullseye. Python v2 jest potrzebny do poprawnej pracy skryptu w pythonie poprawnie pracującego wyłącznie w tej wersji :-(
A jeszcze bardziej precyzując do poprawnej pracy z jego modułami np smbus nie z smbus2 !!! on raczej python3 . Udało mi się uruchomić środowisko wirtualne:

Kod: Zaznacz cały

sudo apt install virtualenv
Ale instalacja modułu smbus już niestety nie jest możliwa ? nie wiem czy brakuje jakiś paczek w systemie czy może jest to niemożliwe takie kombinowanie między python3 i v2 ? ...samo konfigurowanie skryptu do wersji v3 jest poza moimi możliwościami to raczej dla programisty :-(
trochę więcej info z terminala:

Kod: Zaznacz cały

(python2) root@orangepi3-lts:~# pip -V
pip 20.3.4 from /root/venv/python2/lib/python2.7/site-packages/pip (python 2.7)
python --version
Python 2.7.18
pip list
Package Version
---------- -------
pip 20.3.4
setuptools 44.1.1
wheel 0.37.1
pip install smbus

Kod: Zaznacz cały

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Collecting smbus
  Using cached smbus-1.1.post2.tar.gz (104 kB)
Building wheels for collected packages: smbus
  Building wheel for smbus (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /root/venv/python2/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"'; __file__='"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-yiUojb
       cwd: /tmp/pip-install-IK7XcT/smbus/
  Complete output (14 lines):
  running bdist_wheel
  running build
  running build_ext
  building 'i2c' library
  
  building 'smbus' extension
  creating build
  creating build/temp.linux-aarch64-2.7
  aarch64-linux-gnu-gcc -pthread -fno-strict-aliasing -fPIC -fPIC -I/usr/include/python2.7 -c smbusmodule.c -o build/temp.linux-aarch64-2.7/smbusmodule.o -Iinclude
  smbusmodule.c:20:10: fatal error: Python.h: Nie ma takiego pliku ani katalogu
     20 | #include <Python.h>
        |          ^~~~~~~~~~
  compilation terminated.
  error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for smbus
  Running setup.py clean for smbus
Failed to build smbus
Installing collected packages: smbus
    Running setup.py install for smbus ... error
    ERROR: Command errored out with exit status 1:
     command: /root/venv/python2/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"'; __file__='"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-UgYPhm/install-record.txt --single-version-externally-managed --compile --install-headers /root/venv/python2/include/site/python2.7/smbus
         cwd: /tmp/pip-install-IK7XcT/smbus/
    Complete output (14 lines):
    running install
    running build
    running build_ext
    building 'i2c' library
    
    building 'smbus' extension
    creating build
    creating build/temp.linux-aarch64-2.7
    aarch64-linux-gnu-gcc -pthread -fno-strict-aliasing -fPIC -fPIC -I/usr/include/python2.7 -c smbusmodule.c -o build/temp.linux-aarch64-2.7/smbusmodule.o -Iinclude
    smbusmodule.c:20:10: fatal error: Python.h: Nie ma takiego pliku ani katalogu
       20 | #include <Python.h>
          |          ^~~~~~~~~~
    compilation terminated.
    error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /root/venv/python2/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"'; __file__='"'"'/tmp/pip-install-IK7XcT/smbus/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-UgYPhm/install-record.txt --single-version-externally-managed --compile --install-headers /root/venv/python2/include/site/python2.7/smbus Check the logs for full command output.
Ps. OK chyba się udało ale na 100% nie powiem co pomogło bo dużo instalowałem paczek które sugerowano w necie.
Jednak tak na 70% pomogło oczywiście jak wcześniej wspomniałem dodanie repozytorum bullseye do podstawowych bookworm-a instalacja python2 potem virtualenv i dodatkowo jeszcze :

Kod: Zaznacz cały

apt install python2.7-dev
potem uruchomiłem virtualenv i dałem

Kod: Zaznacz cały

pip install smbus 
I jest OK ...wiem że to tylko w ekstremalnych przypadkach takie kombinowanie ...oczywiście na koniec usunołem repozytorum
bullseye i ...apt update
może komuś się przyda że jednak się da zainstalować pythona2 ( i module smbus ) na bookworm
Awatar użytkownika
Yampress
Administrator
Posty: 6416
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: Yampress »

musiałbyś spróbować zbudować paczkę python-2 ze żródeł ze starego debiana oldstable na zależnościach z debiana na którym ma to teraz działać. Bo teraz jak zainstalowałeś masz konflikty wersji. Pobrałeś pakiety ze starszego systemu i zainstalowałeś je na nowszym
Awatar użytkownika
olk777
Posty: 30
Rejestracja: 10 lutego 2018, 17:29

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: olk777 »

Samo zbudowanie pythona2 to może bym się i podjął ale jeszcze są inne programy zależności moduły np. smbus i pewnie też trzeba by to kompilować. A i pewności że to wszystko będzie działać poprawnie nie mam ;) Ale powiem że wszystko działa jak na razie prawidłowo. Robiłem update i upgrade z repo bookworm i jest OK.
Choć jeden pakiet jest faktycznie zatrzymany bo przy instalacji python2 w necie była podpowiedź iż lepiej go usunąć przed w/w operacją żeby się udała.: python3-virtualenv ...
Teraz fakt jest jako do instalacji ale jest zablokowany...i lepiej żeby tak było bo mi zepsuje konfigurację :-)

Kod: Zaznacz cały

apt list --upgradable -a
Listing... Gotowe
python3-virtualenv/stable 20.17.1+ds-1 all [upgradable from: 20.4.0+ds-2+deb11u1]
python3-virtualenv/now 20.4.0+ds-2+deb11u1 all [installed,upgradable to: 20.17.1+ds-1]
Zaryzykowałem zrobiłem backup ...i zrobiłem upgrade tego pakietu + zależności :-)

Kod: Zaznacz cały

sudo apt-get install --only-upgrade python3-virtualenv
Teraz trochę zgłupiał mi LCD 40x2 i progr. lcdproc ...ale dałem większy delay / opóźnienie w programie i trochę się poprawiło na razie testuję może będzie OK. Teraz można przynajmniej wykonać update / upgrade bez błędów. Jednak czas pokarze czy zostanę przy tym rozwiązaniu czy wrócę jednak do backupu i dam wstrzymanie na ten pakiet ...bo wydaje mi się że LCD działał bardziej stabilnie :-)
pozdro
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: fnmirk »

Zastanawiam się, czy warto ponownie koło odkrywać, pakując się w nowe problemy, które będą z czasem narastać?

Pytanie do wyszukiwarki internetowej:

Kod: Zaznacz cały

libraries python2 to python3
Przykładowe rozwiązania:
https://docs.python.org/3.10/library/2to3.html
https://www.howtoforge.com/converting-y ... -python-3/
https://stackoverflow.com/questions/592 ... to-python3
https://python.land/migrating-from-pyth ... o-python-3
https://hackernoon.com/how-to-migrate-f ... o-python-3
https://www.howtoforge.com/converting-y ... -python-3/
Awatar użytkownika
olk777
Posty: 30
Rejestracja: 10 lutego 2018, 17:29

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: olk777 »

Dzięki za namiary na jakieś możliwości konwersji ...prog. 2to3 już próbowałem ale i tak pisze iż nie zadziała z kodem pythona gdzie używa / importuje się modułów. Zerknę w chwili wolnej. Ale raczej proste to nie będzie i pewnie ...szkoda czasu na uczenie się programowania dla jednego pliku pythona2
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: fnmirk »

olk777 pisze: 29 grudnia 2024, 18:04 ...szkoda czasu na uczenie się programowania dla jednego pliku pythona2
Nigdy tak spożytkowanego czasu nie należy żałować. Uczyć warto się zawsze.

Wracając do tematu. Jeżeli kombinowałeś w systemie coś z wersją 2 Pythona i modułami to konwersja skryptu może nie zadziałać, ze względu na pozostałości oprogramowania w systemie. Pip nie działa tak jak apt w Debianie i zostawia dużo śmieci, trudnych do usunięcia. Najlepiej spróbuj konwersji skryptu na maszynie wirtualnej lub jakiejś wersji live Debiana z doinstalowanym czystym środowiskiem Pythona3.
Awatar użytkownika
olk777
Posty: 30
Rejestracja: 10 lutego 2018, 17:29

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: olk777 »

W moim przypadku nie jest to kłopotliwe bo stosuje w/w skrypt na Debianie ale na sprzęcie ARM OrangePi ...a dokładniej na "sklecanym" z w/w Pi ...radiu internetowym. Tak więc nowy system na kartę SD wgrywa się od przysłowiowego "strzała" :-)
więcej: KLIK
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: fnmirk »

Podobne problemy do Twoich, dotknęły mnie w trakcie instalacji programu Paperwork w poprzednich wersjach Debiana. Obecnie jest dostępny pakiet.

Moim zdaniem robisz podobne błędy do moich, musisz nauczyć się rozróżniać wersje Pythona i powiązane z nimi narzędzia. Sama instalacja odpowiedniej wersji Pythona też nie zawsze rozwiąże problem. Zorientuj się, z których dokładnie narzędzi Pythona chcesz korzystać, aby zbudować odpowiednie pakiety oprogramowania.

Np.: pip:
https://note.nkmk.me/en/python-pip-usage/
https://python.land/virtual-environment ... s-with-pip

Wirtualne środowiska:
https://python.land/virtual-environments
https://docs.python.org/3/installing/index.html

Ty odwołujesz się do pip, a uruchomienie pip3 jest tym czego potrzebujesz.

Tak na marginesie, nie jestem programistą Pythona.
Awatar użytkownika
olk777
Posty: 30
Rejestracja: 10 lutego 2018, 17:29

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: olk777 »

Troszkę to upierdliwe :-) ... niby pip3 powinno wystarczyć ale ta przysłowiowa 3 -ka nie wspiera smbus a smbus2 :-) próbowałem zaimportować / podmienić w skrypcie ale to nie zadziałało. Jeszcze pomyśle jak to na przyszłość usprawnić bo jak widać nie uciekniemy od wszelkiego rodzaju zmian ... od klimatycznych do etc
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Re: Python2 instalacja na Bookworm / ( moduł : smbus ) ?

Post autor: fnmirk »

Sprawdź, czy masz zainstalowane:

Kod: Zaznacz cały

apt policy python3-smbus2
Biblioteki, i rozwiązanie którego zapewne potrzebujesz?
https://www.abelectronics.co.uk/kb/arti ... on-library
https://www.abelectronics.co.uk/kb/arti ... -and-demos
https://www.abelectronics.co.uk/kb/arti ... s-in-linux
ODPOWIEDZ