GNU/Linux >> Znalost Linux >  >> Linux

Python – žádný takový soubor nebo adresář, ale vidím to!?

Snažím se spustit python skript na bezhlavém Raspberry PI pomocí winSCP a zobrazí se následující chybová zpráva:

Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.

Když se pokusím spustit z terminálu, dostanu:

: No such file or directory.

Zkouším podobný python skript, ve stejném adresáři, se stejným python shebangem, stejnými oprávněními a pomocí stejného uživatele pi, a funguje to.

Dělám také ls a vidím soubor, takže nevím, proč se nespustí.

Přijatá odpověď:

Z AskUbuntu, odpověď Gillese:

Pokud se zobrazí chyba „:Žádný takový soubor nebo adresář“ (bez ničeho před dvojtečkou), znamená to, že váš řádek shebang má na konci návrat vozíku, pravděpodobně proto, že byl upraven pod Windows (který používá CR,LF jako oddělovač řádků). Znak CR způsobí, že se kurzor přesune zpět na začátek řádku poté, co shell vytiskne začátek zprávy, takže uvidíte pouze část za CR, která končí řetězec interpretu, který je součástí chybové zprávy.

Odstraňte CR:řádek shebang musí mít zakončení řádku Unix (pouze posun řádku). Samotný Python umožňuje zakončení řádků CRLF, takže znaky CR na jiných řádcích nejsou na škodu. Na druhé straně skripty shellu nesmí obsahovat znaky CR.

Chcete-li odstranit konce řádků Windows, můžete použít dos2unix:

sudo dos2unix /usr/local/bin/casperjs

nebo sed:

sudo sed -i -e ‘s/r$//’ /usr/local/bin/casperjs

Pokud musíte upravovat skripty pod Windows, použijte editor, který si poradí s unixovými konci řádků (tj. něco méně mozkově mrtvého než Poznámkový blok) a ujistěte se, že je nakonfigurován tak, aby při úpravách unixového souboru zapisoval unixové konce řádků (tj. pouze LF).


Linux
  1. nelze spustit 'x86_64-conda_cos6-linux-gnu-gcc':Žádný takový soubor nebo adresář (instalace pysam)

  2. conda source deactivate :bash:deactivate:Žádný takový soubor nebo adresář

  3. touch:nelze se dotknout `foo':Žádný takový soubor nebo adresář

  1. Proč může Rm odebrat soubory pouze pro čtení?

  2. /dev/sdb:Žádný takový soubor nebo adresář (ale /dev/sdb1 atd. existuje)

  3. Jak mohu získat binární soubor ze souboru .py

  1. jak najít vlastníka souboru nebo adresáře v pythonu

  2. Zobrazte tabulkový soubor, například CSV, z příkazového řádku

  3. Jak mohu najít soubor/adresář, který by mohl být kdekoli na příkazovém řádku linuxu?