Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Téma založeno: JirkaZ 24 Března 2023, 18:59:18

Název: Jak spustit atd. program v Pythonu
Přispěvatel: JirkaZ 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 (https://sourceforge.net/projects/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.
Název: Re:Jak spustit atd. program v Pythonu
Přispěvatel: JirkaZ 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?
Název: Re:Jak spustit atd. program v Pythonu
Přispěvatel: ramael 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:
Ve všech případech je třeba nejdříve nainstalovat ty závislosti vypsané na githubu autora.
Název: Re:Jak spustit atd. program v Pythonu
Přispěvatel: JirkaZ 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.
Název: Re:Jak spustit atd. program v Pythonu
Přispěvatel: ramael 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.