GNU/Linux >> Znalost Linux >  >> Linux

Ubuntu Python shebang line nefunguje

Pokud se pokoušíte spustit příkaz jako

$ test.py

chyba nemusí mít nic společného s shebangem. Adresář, ve kterém se nachází test.py, není ve vašem PATH . Zkuste

$ ./test.py

obejít PATH vyhledávání.

(To je navíc k zajištění toho, že samotný skript je spustitelný.)


Na stránce python docs je napsáno:

Chcete-li snadno používat skripty Python na Unixu, musíte je nastavit jako spustitelné, např. s

$ chmod +x skript a vložte příslušný řádek Shebang na začátek skriptu. Dobrá volba je obvykle

#!/usr/bin/env python which hledá interpret Pythonu v celé PATH. Některé Unices však nemusí mít příkaz env, takže možná budete muset zadat hardcode/usr/bin/python jako cestu interpretu.

Nevím, jestli se vás to týká nebo ne.


Kromě spuštění skriptu s předchozí tečkou nebo jeho vytvoření spustitelným může nastat další problém:

Pokud se pokusíte použít skript napsaný pomocí editoru systému Windows, může obsahovat zakončení řádků systému Windows. Když je odstraníte, může to Shebang znovu fungovat.

Chcete-li takové konce řádků odstranit, přečtěte si například Jak převést konce řádků Windows v Unixu (CR/LF na LF).

Viz také mé obecné poznámky k neúspěšným hodnocením shebang v mé druhé odpovědi.


Linux
  1. Bash Echo Příkazový řádek spuštěn na samotném příkazovém řádku (ne ve skriptu)?

  2. Proměnná Curl Outfile nefunguje ve skriptu Bash?

  3. Ubuntu – Crontab nefunguje?

  1. Bluetooth nefunguje na Ubuntu 13.10?

  2. R 3.5.0 nefunguje na Ubuntu 18.04?

  3. Ubuntu 16.04 Dual Monitor nefunguje?

  1. Jak opravit, že dokončování karet nefunguje v Ubuntu a Debianu

  2. Změňte pracovní adresář v shellu pomocí python skriptu

  3. Shell skript funguje dobře bez řádky shebang? Proč?