Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jak spustit atd. program v Pythonu  (Přečteno 2133 krát)

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1771
  • Dlouholetý uživatel Linuxu a open source obecně.
Jak spustit atd. program v Pythonu
« kdy: 24 Března 2023, 18:59:18 »
Tak jsem zase po dlouhé době úplně mimo - no, nějak jsem s tím počítal, když jsem už před časem nahlížel do problematiky, ale teď je to natvrdo.

O co jde: chtěl jsem vyzkoušet program pyModSlave, který bohužel (jak už plyne z názvu) existuje jen v pythonové verzi. Ze serveru https://pypi.org/project/pyModSlave/ jsem opsal a spustil příkaz "pip install pyModSlave" (jako uživatel).

Stalo se toto:

Kód: [Vybrat]
user@user-A22-BfG:~$ pip install pyModSlave
Keyring is skipped due to an exception: cannot connect to org.kde.kwalletd
Defaulting to user installation because normal site-packages is not writeable
Collecting pyModSlave
  Downloading pyModSlave-0.4.3.2-py3-none-any.whl (1.6 MB)
     |................| 1.6 MB 2.7 MB/s           
Installing collected packages: pyModSlave
Successfully installed pyModSlave-0.4.3.2

Čili zdánlivě to proběhlo normálně...

Ale co dál? Kam se ten program nainstaloval a jak ho mám spustit? Ve své domovské složce nevidím ani jeho adresář, ani program samotný a jinam jsem ho při instalaci "nepustil". A když ho pak nebudu chtít, jak ho mám kompletně odinstalovat tak, aby po něm nezbylo žádné smetí?

Já prostě nepochopím, proč vždycky po nějaké době, když už se zdá všechno jasné a snadné, je funkční apt a spousta dalších věcí ať už v konzoli nebo klikoidně, tak vznikne bejkárna, která je neintuitivní, nejasná, neinformující atd. apod. Tím nyní myslím celý Python a práci s programy v něm vytvořenými...

Už jsem se setkal s množstvím různých typů instalací včetně kompilace, ale tohle je asi vrchol...

Díky za odpovědi.

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1771
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Jak spustit atd. program v Pythonu
« Odpověď #1 kdy: 24 Března 2023, 20:08:53 »
Tak si odpovím sám, jak jsem dál hledal:

program (resp. adresář s příslušnými *.py soubory) se - alespoň v mém případě a pro Python 3.6 instaloval do /home/user/.local/lib/python3.6/site-packages/pyModSlave/ (to fakt nevymyslíš).

Spustit se dá příkazem python3 název_souboru.py (na což by měl jít udělat i spouštěč čili zástupce).

Průběh:

Kód: [Vybrat]
python3 pyModSlave.py
Traceback (most recent call last):
  File "pyModSlave.py", line 40, in <module>
    import ModFactory as modFactory
  File "/home/user/.local/lib/python3.6/site-packages/pyModSlave/ModFactory.py", line 23, in <module>
    import serial
ModuleNotFoundError: No module named 'serial'

čili zase chybí modul pro sériovou komunikaci a je nutné ho doinstalovat ručně:

Kód: [Vybrat]
user@user-A22-BfG:~/.local/lib/python3.6/site-packages/pyModSlave$ pip install pyserial
Defaulting to user installation because normal site-packages is not writeable
Collecting pyserial
  Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
     |..................| 90 kB 1.1 MB/s           
Installing collected packages: pyserial
Successfully installed pyserial-3.5
user@user-A22-BfG:~/.local/lib/python3.6/site-packages/pyModSlave$ python3 pyModSlave.py

a už naskočí okno programu.

Korektní (úplnou) odinstalaci jsem zatím nehledal. Možná bude stačit smazat ten adresář včetně obsahu?
« Poslední změna: 24 Března 2023, 20:15:45 od JirkaZ »

ramael

  • Stálý člen
  • **
  • Příspěvků: 642
Re:Jak spustit atd. program v Pythonu
« Odpověď #2 kdy: 24 Března 2023, 20:18:01 »
To ti napsalo, že se to nainstalovalo jen pro uživatele (pro Tebe). Je to ve složce ~/.local/lib/python*/site-packages/pyModSlave
Avšak je to jen modul(knihovna)! To znamená, že by sis měl dopsat něco co ten modul využívá. Koukám, že to má dost závislostí. Pokud to chceš spustit jako program, tak máš tři možnosti. Ve všech těch možnostech musíš nejprve doinstalovat závislosti. A pak:
  • buď si vytvoříš wraper (proxy spouštěcí skript) ve Tvém bin adresáři
  • Nebo se přepneš pomocí cd do složky co jsem uvedl hned na začátku a tam to spustíš příkazem python pyModSlave.py
  • nebo jak píše autor https://github.com/KunYi/pymodslave
    jen stáhnout a spustit jako v předchozím případě
Ve všech případech je třeba nejdříve nainstalovat ty závislosti vypsané na githubu autora.
Lenovo: ThinkPad X380 Yoga
Joutůůůůb

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1771
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Jak spustit atd. program v Pythonu
« Odpověď #3 kdy: 24 Března 2023, 20:26:39 »
ramael: díky za reakci, už jsem to nějak pořešil (viz můj text - asi jsem ho doplnil až po Tvé odpovědi). Ze závislostí chyběl jen modbus-tk (aniž by to ovšem někde nějak upozorňovalo!), PyQt5 už byl instalován dřív (nebo souběžně? - kdo ví).

Celý ten svět Pythonu mi připadá jako velkej bastl a vůbec nechápu, proč to tak hrozně oslovuje různé vývojáře. Z hlediska uživatele to je děs a běs.
« Poslední změna: 24 Března 2023, 20:33:18 od JirkaZ »

ramael

  • Stálý člen
  • **
  • Příspěvků: 642
Re:Jak spustit atd. program v Pythonu
« Odpověď #4 kdy: 24 Března 2023, 20:37:21 »
Spíš mne to trvalo napsat déle. Jinak je docela možné, že to nebude fungovat jak by si jeden představoval. Python je super, jen používání několika externích knihoven občas přináší vrásky. Změny API ap. Proto, se třeba osobně externím knihovnám (modulům) snažím co nejvíce vyhýbat. A i tak se mne stalo, že po aktualizaci pythonu, začali skripty dělat psí kusy.
Python je fajn na rychlý vývoj něčeho (najít cestu). Ale pak je to třeba přepsat do něčeho stabilnějšího. Asi mne za to kovaní pythonisti utlučou. Ale takhle to vidím já jako občasný uživatel.
EDIT:
Odinstalace je lepší udělat pomocí pip uninstall pyModSlave
Měli by se tím smazat jak vytvořené složky tak i související proměnné pythonu.
« Poslední změna: 24 Března 2023, 20:46:29 od ramael »
Lenovo: ThinkPad X380 Yoga
Joutůůůůb

 

Provoz zaštiťuje spolek OpenAlt.