[python] Uruchamianie skryptu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
marcin0x02
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 22 lis 2008, 15:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

[python] Uruchamianie skryptu

Post autor: marcin0x02 »

Witam,

Mam problem z uruchomieniem skryptu python w konsoli przez wydanie polecenia:

Kod: Zaznacz cały

./nazwa_pliku
otrzymuje błąd:

Kod: Zaznacz cały

: Nie ma takiego pliku ani katalogu
Skrypt uruchamia się bez błędnie przez:

Kod: Zaznacz cały

python nazwa_pliku
. W pierwszej linii skryptu mam:

Kod: Zaznacz cały

#!/usr/bin/env python
Jest to skrypt to parsowania xml, inne skrypty skrypty mogę uruchamiać bez problemu przez ./nazwa_pliku. Co jest nie tak?
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8659
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [python] Uruchamianie skryptu

Post autor: mario_7 »

Uprawnienia. Zapewne nie nadałeś prawa do wykonywania pliku - stąd taki błąd.
marcin0x02
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 22 lis 2008, 15:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [python] Uruchamianie skryptu

Post autor: marcin0x02 »

Nadałem uprawnienia do wykonywania.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [python] Uruchamianie skryptu

Post autor: ethanak »

Zobacz czy nie masz literówki w shebangu - ostatnio ktoś miał identyczny problem.
marcin0x02
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 22 lis 2008, 15:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [python] Uruchamianie skryptu

Post autor: marcin0x02 »

Literówki też nie mam.
Awatar użytkownika
mario_7
Administrator
Administrator
Posty: 8659
Rejestracja: 30 sie 2006, 13:11
Płeć: Mężczyzna
Wersja Ubuntu: 20.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [python] Uruchamianie skryptu

Post autor: mario_7 »

Fakt, przy braku uprawnień pojawia się błąd typu "permission denied".

A polecenie:

Kod: Zaznacz cały

/usr/bin/env python
uruchamia interpreter pythona?

Można też spróbować podać ścieżkę bezpośrednią do binarki:

Kod: Zaznacz cały

#!/usr/bin/python
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [python] Uruchamianie skryptu

Post autor: ethanak »

W takim razie jak nie ma błędu to pewnie czarna magia - zabij czarnego koguta i tak dalej...
Chociaż ja bym na Twoim miejscu pokazał owo niewątpliwe arcydzieło w Pythonie kunsztownie spisane - być może chochlik jakowyś cnym programistym przeszkodzić chcąc literkę jakowąś zamienił...
Chyba że się wstydzisz.
marcin0x02
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 22 lis 2008, 15:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [python] Uruchamianie skryptu

Post autor: marcin0x02 »

Kod: Zaznacz cały

#!/usr/bin/env python

from xml.dom.minidom import parse
import xml.dom.minidom

def printLibrary(library):
  books = myLibrary.getElementsByTagName("book")
  for book in books:
    print "*****Ksiazka*****"
    print "Tytul: %s" % book.getElementsByTagName("title")[0].childNodes[0].data
    for author in book.getElementsByTagName("author"):
      print "Autor: %s"  % author.childNodes[0].data


# Otworz plik XML i dokonaj jego konwersji do DOM.
myDoc = parse('biblioteczka.xml')
myLibrary = myDoc.getElementsByTagName("library")[0]

# Pobierz wszystkie elementy book.
books = myLibrary.getElementsByTagName("book")

# Wyswietl tytuly i autorow ksiazek.
printLibrary(myLibrary)

# Wstaw nowa ksizke.
newBook = myDoc.createElement("book")
newBookTitle = myDoc.createElement("title")
titleText = myDoc.createTextNode("Python. Receptury")
newBookTitle.appendChild(titleText)
newBook.appendChild(newBookTitle)

newBookAuthor = myDoc.createElement("author")
authorName = myDoc.createTextNode("Alex Martelli i inni")
newBookAuthor.appendChild(authorName)
newBook.appendChild(newBookAuthor)

myLibrary.appendChild(newBook)

print "Dodano nowa ksizke!"
printLibrary(myLibrary)

# Usun ksiazke.
# Znajdz ksiazke.
for book in myLibrary.getElementsByTagName("book"):
  for author in book.getElementsByTagName("author"):
    if author.childNodes[0].data.find("Pratchett") != -1:
      removedBook= myLibrary.removeChild(book)
      removedBook.unlink()

print "Usunieto ksizke."
printLibrary(myLibrary)

# Zapisz dane do pliku biblioteczki.
lib = open("biblioteczka.xml", 'w') 
lib.write(myDoc.toprettyxml("  "))
lib.close()
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: [python] Uruchamianie skryptu

Post autor: beluosus »

Na pewno jesteś w katalogu ze skryptem? Masz zainstalowanego pythona? Jeśli tak to przekopiuj takie polecenia do konsoli i napisz co Ci wyświetliło:

Kod: Zaznacz cały

echo -e '#!/usr/bin/env python\nprint "test"' > tescik.py
chmod 777 tescik.py
ls -l tescik.py
./tescik.py
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości