Portál AbcLinuxu, 28. dubna 2024 23:02


Dotaz: uplny debil - změna opravnění

4.8.2019 10:02 Tomas
uplny debil - změna opravnění
Přečteno: 456×
Odpovědět | Admin
Přílohy:
Ahoj, předně jsem se opravdu snažil najít vlakno s řešením, ale jako uplny debil jsem ho nenasel.

Problem: nejde mi spustit soubor python, protože viz obrazek 1. nemam opravneni

zkousim ho spustit v terminalu viz obrazek 2. což nejde.

Muze mi prosim někdo poradit, jak změnit opravnění, aby šel soubor spustit?

Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.8.2019 10:39 NN
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Muzes bud zmenit vlastnika, nebo pouzit "sudo prikaz ..".
4.8.2019 10:46 Livan
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle těch výpisú to spíš vypadá, že tam soubor, který se pokoušíš spustit, není.
4.8.2019 11:10 Tomas
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Příloha:
on tam ale prave je
Petr Fiedler avatar 4.8.2019 11:14 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
A nemá být místo ~/python/activate náhodou ~/python activate ?
4.8.2019 10:50 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
BTW na obrázku dva je podle mě špatně cesta, nebo ne? Jaká je absolutní cesta souboru? podle toho co vidím by měla být cesta

~/naucse-python/venv/bin/python/activate

a nikoliv

venv/bin/python/activate z umístění ~/naucse-python/venv/bin
Petr Fiedler avatar 4.8.2019 11:06 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění

A já si myslím, že python je soubor a ne adresář a proto v něm nemůže být activate. A odpovídal by tomu i název okna z prvního obrázku.

Petr Fiedler avatar 4.8.2019 11:17 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění

Ups. Myslel jsem, že se tazatel snaží spustit soubor activate v adresáři python, ale asi se snaží příkazem acitvate spustit soubor python. To má ale asi špatně syntakticky.

4.8.2019 11:12 Tomas
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Příloha:
zkousel jsem i pres sudo
Petr Fiedler avatar 4.8.2019 11:11 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin

1) Myslím, že python je soubor a proto v něm nemůžeš mít activate, jako by šlo o adresář.

2) Změna vlastníka: sudo chown tomas:tomas /cesta/k/tomu/co/chces/menit

Petr Fiedler avatar 4.8.2019 11:23 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady úplně dole píší: $ source venv/bin/activate Není chyba v tomto?
4.8.2019 11:24 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj

Viz obr. 1. IMHO mas 2 moznosti:
Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
4.8.2019 11:26 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Takhle to dopada, kdyz neco napisu a pakto jeste doplnim. Ty moznosti jsem samozrejme uvedl 3 :-P
Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
4.8.2019 11:44 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
cd ~/naucse-python
source venv/bin/python/activate
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
4.8.2019 12:26 TechnikTom
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten příkaz "source" v odkazovaném článku vypadá jinak než ho píšete vy. Proč tam furt montujete ten python? Nic takového tam nepíší a ani žádný takový adresář v bin nemate, tak se nedivte se, že to řve.
4.8.2019 12:28 TechnikTom
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
A asi jste špatně nebo vůbec nainstaloval to virtuální prostředí...
Petr Fiedler avatar 4.8.2019 13:05 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění

Zavedl jsem systém, který mám nainstalovaný na flešce a v ~/naucse-python/venv/ mám bin/ include/ lib/ lib64/ pyvenv.cfg share/ .

Petr Fiedler avatar 4.8.2019 13:17 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění

Podstatnější ale je, co je v ~/naucse-python/venv/bin/ . Já tam mám mnohem více souborů: activate activate.csh activate.fish easy_install easy_install-3.6 pip pip3 pip3.6 python python3 .

Petr Fiedler avatar 4.8.2019 13:22 Petr Fiedler | skóre: 35 | blog: Poradna | Brno
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tomáši

na tvém místě bych začal znovu. Drž se striktně toho co tam píší. Pokud už něco bude nainstalováno, tak ti to systém oznámí a prostě budeš jen pokračovat dál.

4.8.2019 13:27 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin
Úplný oné si preto, že nepristupuješ k problému systematicky.

V prvom rade si ujasni, ako sa volá súbor, s ktorým pracuješ. Potom si uvedom, že ak neuvedieš absolútnu cestu tak používaš cestu relatívnu k aktuálnemu adresáru. Takže keď je aktuálnou cestou
~/naucse-python/venv/bin
čo pravdepodobne znamená
/home/tomas/naucse-python/venv/bin
, tak príkaz
source venv/bin/python/activate
znamená, že chceš spustiť skript, ktorého celá cesta je
/home/tomas/naucse-python/venv/bin/venv/bin/python/activate
No a keď budeme mať jasno v tom, kde ten súbor vlastne je, tak treba vedieť, že v Linuxe sú buď programy skompilované alebo v podobe skriptu. Použitie "source" naznačuje, že ten tvoj program "activate" je skript. Presvedčiť sa dá tak, že sa pozrieš dovnútra. Ak je to skript, tak pravdepodobne začína znakmi
#!
a za nimi nasleduje program, ktorý bude interpretovať zvyšok skriptu. Ak tam je uvedený program nesprávny (napr. s nesprávnou cestou), tak to fungovať nebude.

Už nebudem ďalej špekulovať. Ujasni si kde ten súbor je, čo je v ňom napísané a podľa toho sa pohneš ďalej.
Jendа avatar 4.8.2019 16:50 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Mimochodem podle té šipky v 3 bych čekal že to bude symlink. Ještě může mířit na neexistující soubor (ls -l).
4.8.2019 18:45 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: uplny debil - změna opravnění
Odpovědět | | Sbalit | Link | Blokovat | Admin

Mně připadá, že netušíš, co přesně chceš udělat. :-) To je ale nejdůležitější první krok — ujasnit si, čeho chceš nějakými příkazy shellu docílit.

Příkaz source je specifický pro shell (například Bash). Je zhruba stejný jako příkaz „tečka na začátku řádku“ a načte do současného shellu, ať už interaktivního nebo spuštěného se skriptem, obsah požadovaného souboru, který ale musí být taky shell skript. Těžko můžeš do shellu načíst skript v Pythonu. To řekne tak leda syntax error.

Předpokládám tedy, že chceš spustit skript v Pythonu. Dejme tomu, že máme skript typu Hello, World v souboru /tmp/blah.py. Takhle by se ten soubor dal vytvořit:

cat > /tmp/blah.py <<<"print('hello fucking world')"

Takhle by se dalo prohlédnout, co v něm je:

cat /tmp/blah.py

A takhle by se dal spustit:

python3 /tmp/blah.py

Nebo s úplnými cestami:

/usr/bin/python3 /tmp/blah.py

Nebo když budeš ve správném adresáři:

cd /tmp
python3 blah.py
cd /tmp
python3 ./blah.py

Všimni si, že na tohle^^^ vůbec nebylo potřeba, aby byl soubor spustitelný (aby měl nastavený x bit). Spustitelný je totiž interpret Pythonu, který pak interpretuje příslušný skript v Pythonu.

Pokud chceš používat blah.py přímo jako spustitelný soubor, k tomu slouží shebang Můžeš si přidat do souboru ten speciální první řádek nebo znovu vytvořit soubor třeba takto:

cat > /tmp/blah.py <<-BLAH
#!/usr/bin/python3
print('hello fucking world')
BLAH

Soubor blah.py tedy bude obsahovat toto (cat /tmp/blah.py):

#!/usr/bin/python3
print('hello fucking world')

Pak nastavíš, že má být spustitelný:

chmod +x /tmp/blah.py

A pak ho spustíš:

/tmp/blah.py

Nebo tedy přímo z místního adresáře:

cd /tmp
./blah.py

Je jenom potřeba si ujasnit, kde je současný adresář, kde je soubor, který chceš spustit, co v něm je (a má být) atd. atp. To je celé. Tedy neprovádět nějaký návod naslepo a s chybamí, ale vždy mít přehled o tom, co který krok dělá a znamená, jak si můžu prohlédnout výsledek nějaké akce (obsah souboru, cíl symlinku, práva souboru (ls -l) atd.) a co vlastně dělám.

V tom tvém screenshotu používáš relativní cestu k souboru, ale první dva adresáře té relativní cesty jsou tam chybně navíc, protože to je adresář, ve kterém už jsi, který máš jako současný adresář v shellu. Pak není divu, že to celé nefunguje. (Samozřejmě tam asi budou ještě i další chyby.)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.