Strona 1 z 1
[python] Uruchamianie skryptu
: 05 mar 2013, 20:17
autor: marcin0x02
Witam,
Mam problem z uruchomieniem skryptu python w konsoli przez wydanie polecenia:
otrzymuje błąd:
Skrypt uruchamia się bez błędnie przez:
. W pierwszej linii skryptu mam:
Jest to skrypt to parsowania xml, inne skrypty skrypty mogę uruchamiać bez problemu przez ./nazwa_pliku. Co jest nie tak?
Re: [python] Uruchamianie skryptu
: 05 mar 2013, 22:48
autor: mario_7
Uprawnienia. Zapewne nie nadałeś prawa do wykonywania pliku - stąd taki błąd.
Re: [python] Uruchamianie skryptu
: 05 mar 2013, 23:22
autor: marcin0x02
Nadałem uprawnienia do wykonywania.
Re: [python] Uruchamianie skryptu
: 06 mar 2013, 10:00
autor: ethanak
Zobacz czy nie masz literówki w shebangu - ostatnio ktoś miał identyczny problem.
Re: [python] Uruchamianie skryptu
: 06 mar 2013, 19:35
autor: marcin0x02
Literówki też nie mam.
Re: [python] Uruchamianie skryptu
: 06 mar 2013, 21:12
autor: mario_7
Fakt, przy braku uprawnień pojawia się błąd typu "permission denied".
A polecenie:
uruchamia interpreter pythona?
Można też spróbować podać ścieżkę bezpośrednią do binarki:
Re: [python] Uruchamianie skryptu
: 07 mar 2013, 07:06
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.
Re: [python] Uruchamianie skryptu
: 07 mar 2013, 18:33
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()
Re: [python] Uruchamianie skryptu
: 08 mar 2013, 00:36
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