Hallo
Ich habe mir ein kleines Programm geschrieben, dass auf traceroute basiert, mir aber durch ein paar whois anfragen noch ausgibt, in welcher Stadt der gerade besuchte Server steht.
Jetzt würde ich gerne mein Programm so verändern, dass ich nur noch den Namen und die ZielAdresse eingebe, also genau so, wie beim originalen traceroute. Jetzt muss ich mich noch in das verzeichniss cden und dort dann noch das "python traceEnhanced.py 127.0.0.1" aufrufen, und nicht einfach "traceEnhanced 127.0.0.1" was doch bedeutend einfacher wäre.
Kennt da jemand eine Möglichkeit?
Nikolas
Skript im Terminal direkt aufrufen
Das Skript muss in einem Ordner sein der in der PATH Variable steht oder du fügst den Ordner in dem es liegt der Variable hinzu. Das ist allerdings Betriebssystem abhängig. Unter Linux würde es reichen das Skript nach /usr/bin oder /usr/local/bin zu kopieren oder dort eine Verknüpfung/Symlink anzulegen.
-
- User
- Beiträge: 102
- Registriert: Dienstag 25. Dezember 2007, 22:53
- Wohnort: Freiburg im Breisgau
Ich arbeite mit Mac OS 10.5. Sprechen wir auch gerade vom gleichen? Mit geht es darum, dass ich nicht mehr das 'python' vor das skript setzen muss. (und das .py)
Im Endeffekt soll ein Nutzer nichts mehr davon merken, dass dieses Programm von mir selbst geschrieben wurde, und nicht eines der vorinstallierten Programme ist.
Im Endeffekt soll ein Nutzer nichts mehr davon merken, dass dieses Programm von mir selbst geschrieben wurde, und nicht eines der vorinstallierten Programme ist.
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
Code: Alles auswählen
ln -s `pwd`/meinscript.py /usr/bin/meinscript
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Shebang muss richtig eingestellt sein und das Executable Bit muss gesetzt sein. Dann kann man es mit ``./dein_programm`` aufrufen und wenn es im PATH ist, dann reicht auch ein ``dein_programm``-Aufruf.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 102
- Registriert: Dienstag 25. Dezember 2007, 22:53
- Wohnort: Freiburg im Breisgau
Meinst du mit dem executable Bit einfach die Ausführerlaubnis? also chmod +x?
Wenn ich das Programm in meinem Eclipse-Workspace belasse und das ./tracePlus(.py) versuche, bekomme ich die Fehlermeldung, dass diese Datei nicht existiert.
Shebang ist richtig gesetzt.
Wenn ich das Programm in meinem Eclipse-Workspace belasse und das ./tracePlus(.py) versuche, bekomme ich die Fehlermeldung, dass diese Datei nicht existiert.
Shebang ist richtig gesetzt.
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
-
- User
- Beiträge: 102
- Registriert: Dienstag 25. Dezember 2007, 22:53
- Wohnort: Freiburg im Breisgau
für den Aufruf "ls -alF" in meinem workspace bekomme ich ein
-rwxr--r--@ (...) tracePlus.py*. (chmod 744)
Laut man ls steht das * am Ende für eine ausführbare Datei. Was das @ bedeutet, weiss ich nicht.
Die shebang ist #! usr/bin/python, was der Antwort auf "whereis python" entspricht.
Als nächstes habe ich die .py nach usr/bin/ gelegt, wo die anderen Terminal-Programme liegen. Ein Aufruf "tracePlus.py www.web.de" gab dann erst mal ein "Permission denied", was aber durch chmod 744 gelöst werden konnte. Deswegen bin ich mir auch sicher, dass jetzt diese Datei betrachtet wird. Als nächstes kommt ein
- bash: /usr/bin/tracePlus.py: usr/bin/python: bad interpreter: No such file or directory.
ls -alF liefert aber:
lrwxr-xr-x 1 root wheel 72 21 Feb 17:29 python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
wobei das @ hier auf einen link hinweist. Der link verweist auf einen anderen Link, der dann auf python2.5 zeigt.
Hat da noch jemand eine Idee?
-rwxr--r--@ (...) tracePlus.py*. (chmod 744)
Laut man ls steht das * am Ende für eine ausführbare Datei. Was das @ bedeutet, weiss ich nicht.
Die shebang ist #! usr/bin/python, was der Antwort auf "whereis python" entspricht.
Als nächstes habe ich die .py nach usr/bin/ gelegt, wo die anderen Terminal-Programme liegen. Ein Aufruf "tracePlus.py www.web.de" gab dann erst mal ein "Permission denied", was aber durch chmod 744 gelöst werden konnte. Deswegen bin ich mir auch sicher, dass jetzt diese Datei betrachtet wird. Als nächstes kommt ein
- bash: /usr/bin/tracePlus.py: usr/bin/python: bad interpreter: No such file or directory.
ls -alF liefert aber:
lrwxr-xr-x 1 root wheel 72 21 Feb 17:29 python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
wobei das @ hier auf einen link hinweist. Der link verweist auf einen anderen Link, der dann auf python2.5 zeigt.
Hat da noch jemand eine Idee?
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
Drei Dinge:Nikolas hat geschrieben:Ich arbeite mit Mac OS 10.5. Sprechen wir auch gerade vom gleichen? Mit geht es darum, dass ich nicht mehr das 'python' vor das skript setzen muss. (und das .py)
Im Endeffekt soll ein Nutzer nichts mehr davon merken, dass dieses Programm von mir selbst geschrieben wurde, und nicht eines der vorinstallierten Programme ist.
- Wie deine Datei heißt, ist egal, das ".py" ist nur eine Konvention. Du braucht in der ersten Zeile ein "shebang", also `#!/usr/bin/python`.
- Die Datei muss ausführbar sein, also `chmod +x` auf deine Datei ausführen.
- Die Datei muss im PATH stehen, also nach `/usr/bin` oder `/usr/local/bin`kopieren oder die PATH-Variable anpassen.
Das bedeutet, dass im Dateisystem noch Metainformationen für diese Datei hinterlegt sind. Die könntest du dir mitNikolas hat geschrieben:für den Aufruf "ls -alF" in meinem workspace bekomme ich ein
-rwxr--r--@ (...) tracePlus.py*. (chmod 744)
Laut man ls steht das * am Ende für eine ausführbare Datei. Was das @ bedeutet, weiss ich nicht.
Code: Alles auswählen
xattr -l datei
-
- User
- Beiträge: 102
- Registriert: Dienstag 25. Dezember 2007, 22:53
- Wohnort: Freiburg im Breisgau
Wunderbar 
Das / hat gefehlt
Also nochmal zum mitschreiben:
-> shebang: #!/usr/bin/python
-> unter Mac: PATH anpassen (nicht getestet) oder nach /usr/bin/ kopieren.
Wenn man diesen Ordner nicht findet TinkerTool benutzen, um auch versteckte Dateien zu finden.
-> Name: beliebig. Wenn man das .py im Finder entfernt, aufpassen, dass die Endung wirklich weg ist, per cmd-I noch mal überprüfen
-> executive Bit: per chmod 744 oder +x setzen
Danke euch allen. Ich werde den Code in einem eigenen Thread veröffentlichen.
klick

Das / hat gefehlt

Also nochmal zum mitschreiben:
-> shebang: #!/usr/bin/python
-> unter Mac: PATH anpassen (nicht getestet) oder nach /usr/bin/ kopieren.
Wenn man diesen Ordner nicht findet TinkerTool benutzen, um auch versteckte Dateien zu finden.
-> Name: beliebig. Wenn man das .py im Finder entfernt, aufpassen, dass die Endung wirklich weg ist, per cmd-I noch mal überprüfen
-> executive Bit: per chmod 744 oder +x setzen
Danke euch allen. Ich werde den Code in einem eigenen Thread veröffentlichen.
klick
Erwarte das Beste und sei auf das Schlimmste vorbereitet.