Hey...
ich habe mir ein Raspberry Pi gekauft um dort mein Python Skript laufen zu lassen.
Ich habe überhaupt keine Ahnung von Linux oder sonstigem, weshalb ich nun schon 4 stunden daran sitze und jetzt immerhin eine aktuelle Version von Raspbian auf dem Raspberry läuft.
Nun ist das nächste Problem Python.
1. Es ist "nur" Python 3.2 drauf, obwohl ich schon das Raspbian Upgrade durchgeführt habe. Ich hatte gegoogelt und gelesen, dass durch das Upgrade alles aktualisiert würde, aber PYthon wurde es anscheinend nicht? Wie komme ich denn nun auf Python 3.4?? Auf der Python Seite steht nichts von Linux oder Raspbian =/
Zusätzlich muss ich einige Module für mein Skript installieren, zumindest aufjedenfall requests. Ich kenn mich mit den ganzen Kommandobefehlen von Linux noch nicht aus und bin stark überfordert.
Jedenfalls rufe ich das Terminal ein und gebe ein "python pip install requsts". Aber da kommt nur die Fehlermeldung "python can't open file "pip" ... Noch such file or directory"
Was muss ich denn jetzt machen, um requests zu installieren? Auf Windows musste ich mich bevor ich überhaupt irgendwas starten konnte, in den jeweiligen Order mithilfe von "cd" wechseln. (siehe hier, warum das auf windows bei mir extrem umstädnlich ist http://www.python-forum.de/viewtopic.ph ... 24#p269724 ich gehe davon aus, dass das nicht so gewollt ist und an meinem pc irgendwas vermurkst ist, deswegen weiß ich nichtmal, wie es eigentlich sein sollte... und schon garnicht, wie es nun auf Raspbian geht =/ )
Ja.. also erstmal die oben genannten Fragen: Wie auf 3.4 kommen und wie requests installieren?
mit pip installieren von Modulen auf Raspbian
Zuerst mal musst Du pip installieren, fuer Python3 schreibst Du im LXTerminal:
sudo apt-get install python3-pip
Ich wuerde zuerst mal mit Python3.2 fliegen, Du kannst dafuer IDLE 3 benuetzen.
Python 3.4 hat ein paar Verbesserungen, versuch mal ohne diese zu coden.
Der Raspberry Pi ist in erster Linie fuer Automation gemacht, ist also kein Ersatz des PCs.
Python27, Python32 und das installierte C++ kann da so ziemlich alles machen was Du willst.
Den genauen Namen fuer request kannst Du im LXTerminal mit
aptitude search request
finden.
Willst Du wissen wo pip ist, im LXTerminal schreibe:
whereis pip
In der IDLE3 IDE kannst Du nun diese Code schreiben und laufen lassen:
Viel Spass mit dem winzigen Computer!
sudo apt-get install python3-pip
Ich wuerde zuerst mal mit Python3.2 fliegen, Du kannst dafuer IDLE 3 benuetzen.
Python 3.4 hat ein paar Verbesserungen, versuch mal ohne diese zu coden.
Der Raspberry Pi ist in erster Linie fuer Automation gemacht, ist also kein Ersatz des PCs.
Python27, Python32 und das installierte C++ kann da so ziemlich alles machen was Du willst.
Den genauen Namen fuer request kannst Du im LXTerminal mit
aptitude search request
finden.
Willst Du wissen wo pip ist, im LXTerminal schreibe:
whereis pip
In der IDLE3 IDE kannst Du nun diese Code schreiben und laufen lassen:
Code: Alles auswählen
import pip
for item in pip.get_installed_distributions():
print(item)
Atomkraftwerkaktienbesitzer
- noisefloor
- User
- Beiträge: 4253
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
brauchst du denn überghaupt Python 3.4? Hört sich ehrlich gesagt nicht so an, also würdest du als Einsteiger darauf angewiesen sein.
Wenn du mit der Paketverwaltung auf der Kommandozeile überfordert bis - was bei Linux-Neulingen durchaus sein kann, dann installier' dir am besten die grafische Paketverwaltung Synaptic (ich gehe mal davon aus, dass es die auch auf Raspbien gibt). Das Paket heißt `synaptic`.
Das wird zwar auf dem Pi relativ langsam sein, aber dafür kriegst du eine überlichtliche Auflisting der Pakete in der GUI.
Gruß, noisefloor
brauchst du denn überghaupt Python 3.4? Hört sich ehrlich gesagt nicht so an, also würdest du als Einsteiger darauf angewiesen sein.
Wenn du mit der Paketverwaltung auf der Kommandozeile überfordert bis - was bei Linux-Neulingen durchaus sein kann, dann installier' dir am besten die grafische Paketverwaltung Synaptic (ich gehe mal davon aus, dass es die auch auf Raspbien gibt). Das Paket heißt `synaptic`.
Das wird zwar auf dem Pi relativ langsam sein, aber dafür kriegst du eine überlichtliche Auflisting der Pakete in der GUI.
Gruß, noisefloor
Danke euch 
Ich kenne die Unterschiede zwischen 3.2 und 3.4 nicht, weshalb ich mir halt gedacht habe "lieber das installieren, womit ich das Skript geschrieben habe, als das dann irgendwelche Fehler auftreten, die ich nicht zuordnen kann und Stunden brauche um sie zu identifizieren". Aber gut, ich kanns ja erstmal mit 3.2 versuchen.
Ich ging davon aus, dass pip standardmäßig installiert ist? Zumindest glaube ich, dass das bei 3.4 auf Windows der fall war.
Der Befehl "sudo apt-get install python3-pip" hat jedenfalls geklappt
Nur inwiefern helfen mir die anderen Befehle und das kleine Skript nun dabei requests zu installieren?
"aptitude search requests" spuckt aus:
Die for Schleife zeigt mir nur an, was man mit pip alles installieren kann, oder? Da ich nur requests haben will, brauch ich das also nicht ausführen, korrekt?
Ja.. und nun? Wie installliere ich jetzt requests?
Habe den oben erwähnten Befehl nochmal eingegeben, aber pip ist weiterhin unbekannt (also obige Fehlermeldung).
Auf Windows müsste ich aufgrund des oben in dem Link beschriebenen Verhaltens, vorher in den Order wehcseln, in dem sich pip befindet. Sollte ich das hier auch mal versuchen? Ich hab mal im Dateimanager geschaut (gibt es dort eine Suchfunktion wie im Windows Explorer auch, hab keine gefunden, ist so echt schwer sich zurechtzufinden.. und es wird auch links in der Spalte keine Struktur angezeigt, weshalb ich erstmal stunden gebraucht habe, um rauszufinden, dass ich noch in einen übergeordneten Order wechseln kann, um eben zu usr oder etc usw zu kommen O.ô ) jedenfalls gibt es unter usr/bin dann ein paar python dinge. Aber das ist kein Python Ordner, sondern angeblich nur ein Skript. Wo finde ich denn nun den PythonOrdner in dem sich pip befindet?
Oder brauche ich das doch nicht?
@noisefloor:
was genau meinst du mit Paketverwaltung? Es gibt ja den Dateimanager, meinst du so eine grafische Oberfläche? Und falls du was anderes meinst, wie würde ich synaptic dann installieren, mit welchem Befehl?
Da ihr offensichtlich Ahnung vom Raspberry habt, stell ich nochmal ein paar weiterführende Fragen:
Ich habe natürlich bereits WLAN mit statischer IP Adresse eingerichtet und er kann aufs Internet zugreifen. Nun ist natürlich das Ziel, den Raspberry nicht immer an Maus/Tastatur und Bildschirm anschlißen zu müssen, sondern ich will von meinem PC aus alles machen. Dazu habe ich mir schon "putty" runtergeladen und ich denke das funktioniert soweit. Was ich dann vor mir habe ist vermutlich einfach das Terminal.
Was aber noch nicht funktioniert ist der direkte Zugriff per WLAN. Ich möchte einfach meine Python Skripte auf den Raspberry übertragen. Aber ich kann ihn in der Netzwerkumgebung nicht finden und ihn auch nicht anpingen. Beim Anpingen suche ich dieselbe IP Adresse, die ich auch erfolgreich bei putty verwende, also sollte die eig richtig sein und steht so auch im raspberry.
Wo ich noch etwas verwirrt bin, wenn ich "ip a" im terminal eingebe, gibt es unter anderem "eth0" und "wlan0". Ich habe als WLAN jetzt wlan0 eingerichtet, da das im WLAN Assistenten so voreingestellt war. Ist das richtig, oder brauche ich eth0?
Und wenn wir schon dabei sind, noch eine Python-frage:
in meinem Skript steht unter anderem:
logging.basicConfig(filename='testlog.log',level=logging.DEBUG,format='%(asctime)s %(message)s')
Was muss ich eintragen, damit die testlog.log-Datei nicht imselben Ordner wie das Skript sein muss, sondern irgendwo anders? Am sinnvollsten wäre es, wenn ich die Datei direkt auf meinem HauptPc speichern würde, nur ist dieser ja nicht ständig an, weshalb das schonmal nicht geht... Stattdessen vllt gleich in einen Dropbox-Ordner laden? Geht Dropbox auf einem Raspberry? (iwie so einstellen, dass die daten nicht runtergeladen werden, sondern nur hochgeladen?)
Sinn dahinter ist, dass die LogDatei recht schnell ziemlich groß wird und unnötig Speicherplatz auf dem Rapsberry verbrauchen würden. Wenns nicht anders geht, würde ich das logging dann erstmal abschalten.
Ich kenne die Unterschiede zwischen 3.2 und 3.4 nicht, weshalb ich mir halt gedacht habe "lieber das installieren, womit ich das Skript geschrieben habe, als das dann irgendwelche Fehler auftreten, die ich nicht zuordnen kann und Stunden brauche um sie zu identifizieren". Aber gut, ich kanns ja erstmal mit 3.2 versuchen.
Ich ging davon aus, dass pip standardmäßig installiert ist? Zumindest glaube ich, dass das bei 3.4 auf Windows der fall war.
Der Befehl "sudo apt-get install python3-pip" hat jedenfalls geklappt
Nur inwiefern helfen mir die anderen Befehle und das kleine Skript nun dabei requests zu installieren?
"aptitude search requests" spuckt aus:
"whereis pip" spuckt aus:p python-requests
p python3-requests
... das hilft glaube ich nicht wirklich, oder?pip:
Die for Schleife zeigt mir nur an, was man mit pip alles installieren kann, oder? Da ich nur requests haben will, brauch ich das also nicht ausführen, korrekt?
Ja.. und nun? Wie installliere ich jetzt requests?
Habe den oben erwähnten Befehl nochmal eingegeben, aber pip ist weiterhin unbekannt (also obige Fehlermeldung).
Auf Windows müsste ich aufgrund des oben in dem Link beschriebenen Verhaltens, vorher in den Order wehcseln, in dem sich pip befindet. Sollte ich das hier auch mal versuchen? Ich hab mal im Dateimanager geschaut (gibt es dort eine Suchfunktion wie im Windows Explorer auch, hab keine gefunden, ist so echt schwer sich zurechtzufinden.. und es wird auch links in der Spalte keine Struktur angezeigt, weshalb ich erstmal stunden gebraucht habe, um rauszufinden, dass ich noch in einen übergeordneten Order wechseln kann, um eben zu usr oder etc usw zu kommen O.ô ) jedenfalls gibt es unter usr/bin dann ein paar python dinge. Aber das ist kein Python Ordner, sondern angeblich nur ein Skript. Wo finde ich denn nun den PythonOrdner in dem sich pip befindet?
Oder brauche ich das doch nicht?
@noisefloor:
was genau meinst du mit Paketverwaltung? Es gibt ja den Dateimanager, meinst du so eine grafische Oberfläche? Und falls du was anderes meinst, wie würde ich synaptic dann installieren, mit welchem Befehl?
Da ihr offensichtlich Ahnung vom Raspberry habt, stell ich nochmal ein paar weiterführende Fragen:
Ich habe natürlich bereits WLAN mit statischer IP Adresse eingerichtet und er kann aufs Internet zugreifen. Nun ist natürlich das Ziel, den Raspberry nicht immer an Maus/Tastatur und Bildschirm anschlißen zu müssen, sondern ich will von meinem PC aus alles machen. Dazu habe ich mir schon "putty" runtergeladen und ich denke das funktioniert soweit. Was ich dann vor mir habe ist vermutlich einfach das Terminal.
Was aber noch nicht funktioniert ist der direkte Zugriff per WLAN. Ich möchte einfach meine Python Skripte auf den Raspberry übertragen. Aber ich kann ihn in der Netzwerkumgebung nicht finden und ihn auch nicht anpingen. Beim Anpingen suche ich dieselbe IP Adresse, die ich auch erfolgreich bei putty verwende, also sollte die eig richtig sein und steht so auch im raspberry.
Wo ich noch etwas verwirrt bin, wenn ich "ip a" im terminal eingebe, gibt es unter anderem "eth0" und "wlan0". Ich habe als WLAN jetzt wlan0 eingerichtet, da das im WLAN Assistenten so voreingestellt war. Ist das richtig, oder brauche ich eth0?
Und wenn wir schon dabei sind, noch eine Python-frage:
in meinem Skript steht unter anderem:
logging.basicConfig(filename='testlog.log',level=logging.DEBUG,format='%(asctime)s %(message)s')
Was muss ich eintragen, damit die testlog.log-Datei nicht imselben Ordner wie das Skript sein muss, sondern irgendwo anders? Am sinnvollsten wäre es, wenn ich die Datei direkt auf meinem HauptPc speichern würde, nur ist dieser ja nicht ständig an, weshalb das schonmal nicht geht... Stattdessen vllt gleich in einen Dropbox-Ordner laden? Geht Dropbox auf einem Raspberry? (iwie so einstellen, dass die daten nicht runtergeladen werden, sondern nur hochgeladen?)
Sinn dahinter ist, dass die LogDatei recht schnell ziemlich groß wird und unnötig Speicherplatz auf dem Rapsberry verbrauchen würden. Wenns nicht anders geht, würde ich das logging dann erstmal abschalten.
-
BlackJack
@Serpens: Naja Du kannst jetzt das `requests` aus der Paketverwaltung installieren, also entweder mit Aptitude oder mit ``apt-get``, oder Du kannst ``pip`` benutzen wobei das was Du installiert hast ``pip3`` heisst, weil es das ``pip`` ist was Packages für das Python 3 installiert. Du hast da ja auch ein Python 2.7 installiert, denn das ist das Standardpython auf Raspbian/Debian, und auch noch bei den meisten anderen aktuellen Linux-Distributionen. Für 2.7 gibt es auch ein ``pip`` in den Paketquellen und das heisst dann nur ``pip`` ohne die 3. Irgendwie muss man die Sachen ja auseinanderhalten können.
``whereis pip`` gibt nichts weiter aus weil es ja auch nicht installiert ist.
Die ``for``-Schleife gibt aus was installiert *ist*.
Synaptic ist eine grafische Paketverwaltung, also so etwas wie Aptitude für die Konsole aber halt eine GUI-Anwendung. Das installiert man wie jedes andere Paket auch, entweder mit ``apt-get`` oder mit Aptitude.
Wenn Du Dich mit Putty zum Raspi verbinden kannst, dann sollte der über die gleiche IP die Du zum Verbinden benutzt hast, auch pingbar sein. Falls nicht tippe ich mal auf eine Firewall irgendwo dazwischen.
Der Name wlan0 deutet ja schon auf WLAN hin. Das eth in eth0 steht für Ethernet. Man kann den Raspi ja auch per Ethernetkabel verbinden. Das wäre dann die eth0-Schnittstelle.
Daten übertragen könnte man Windows aus per scp machen. WinSCP ist ein brauchbares Programm dafür.
``whereis pip`` gibt nichts weiter aus weil es ja auch nicht installiert ist.
Die ``for``-Schleife gibt aus was installiert *ist*.
Synaptic ist eine grafische Paketverwaltung, also so etwas wie Aptitude für die Konsole aber halt eine GUI-Anwendung. Das installiert man wie jedes andere Paket auch, entweder mit ``apt-get`` oder mit Aptitude.
Wenn Du Dich mit Putty zum Raspi verbinden kannst, dann sollte der über die gleiche IP die Du zum Verbinden benutzt hast, auch pingbar sein. Falls nicht tippe ich mal auf eine Firewall irgendwo dazwischen.
Der Name wlan0 deutet ja schon auf WLAN hin. Das eth in eth0 steht für Ethernet. Man kann den Raspi ja auch per Ethernetkabel verbinden. Das wäre dann die eth0-Schnittstelle.
Daten übertragen könnte man Windows aus per scp machen. WinSCP ist ein brauchbares Programm dafür.
Auf meinem Raspberry Pi benuetze ich nur Python27 fuer Automationprojekte.
Zur extra Speicherung habe ich ein 16GB USB Laufwerk eingesteckt. Der Raspberry Pi B+ hat ja 4 USB Stecker.
Entschuldigung fuer den pip vs. pip3 Fehler den BlackJack so nett angedeuted hat.
Fuer Python3 benuetze den Befehl sudo apt-get install python3-requests
Zur extra Speicherung habe ich ein 16GB USB Laufwerk eingesteckt. Der Raspberry Pi B+ hat ja 4 USB Stecker.
Entschuldigung fuer den pip vs. pip3 Fehler den BlackJack so nett angedeuted hat.
Fuer Python3 benuetze den Befehl sudo apt-get install python3-requests
Atomkraftwerkaktienbesitzer
Danke 
Habe requests jetzt mit "sudo aptitude install python3-requests" installieren können
("wehreis pip3" liefert übrigens auch einfach nur "pip3:" zurüpck, obwohl das doch eig installiert sein sollte? aber egal, scheint ja mit requests geklappt zu haben)
Auch danke für den Hinweis mit SCP
das klappt und ich kann Dateien problemlos rüberziehen
Leider lese ich aber gerade, dass mein Modul "krakenex" mindestens Python 3.3 oder höher benötigt. https://github.com/veox/python3-krakenex
Wie komme ich nun also zur aktuellsten Python Version? Muss ich dann requests nochmal installieren, oder ist das unabhängig davon (hauptsache python 3.x )?
edit:
mein Raspberry hat übrigens nur 2 USB Slots, ist also wohl die kleinste Variante. Daher kann ich neben dem WLAN auch nur eine Maus, keine Tastatur anschließen (hab zwar auch ein USB für Maus+Tastatur, aber das hängt an meinem Hauptrechner und ich wilsl nicht die ganze zeit hin und her stöpseln) Deswegen habe ich mir auf dem Raspberry diese matchbox Bildschirmtastatur installiert.
Das komische ist nun, wenn ich dieses Keyboard starte, dann verschwinden alle Desktopsymbole auf dem Desktop ?! Auch wenn ich unten links auf Desktop2 schalte, sind dort keine Symbole mehr zu finden. Unter Windows würde ich das damit begründen, dass da irgendwas leicht überfordert ist und ich würde ein paar Fenster durchschalten und nach kurzer Zeit wären die Symbole wieder da (oder ich beende den Verursachnenden Prozess). aber beim Raspberry kommen die Symbole nicht wieder, nur ein Neustart hilft. Woran liegt das?
Ach und kann ich mit dem Taskmanger mir auch aktive Anwendungen anzeigen lassen? Es kommt häufiger vor, dass etwas nicht mehr reagiert. Dann würde ich gerne alle aktiven Anwendungen killen. Wenn ich nur Anwendungen kille, gibts ja keine Probleme. Alle Prozesse sollte ich hingegen nicht einfach so killen, deswegen frage ich nach der Sortierung für Anwedungen
Habe requests jetzt mit "sudo aptitude install python3-requests" installieren können
("wehreis pip3" liefert übrigens auch einfach nur "pip3:" zurüpck, obwohl das doch eig installiert sein sollte? aber egal, scheint ja mit requests geklappt zu haben)
Auch danke für den Hinweis mit SCP
Leider lese ich aber gerade, dass mein Modul "krakenex" mindestens Python 3.3 oder höher benötigt. https://github.com/veox/python3-krakenex
Wie komme ich nun also zur aktuellsten Python Version? Muss ich dann requests nochmal installieren, oder ist das unabhängig davon (hauptsache python 3.x )?
edit:
mein Raspberry hat übrigens nur 2 USB Slots, ist also wohl die kleinste Variante. Daher kann ich neben dem WLAN auch nur eine Maus, keine Tastatur anschließen (hab zwar auch ein USB für Maus+Tastatur, aber das hängt an meinem Hauptrechner und ich wilsl nicht die ganze zeit hin und her stöpseln) Deswegen habe ich mir auf dem Raspberry diese matchbox Bildschirmtastatur installiert.
Das komische ist nun, wenn ich dieses Keyboard starte, dann verschwinden alle Desktopsymbole auf dem Desktop ?! Auch wenn ich unten links auf Desktop2 schalte, sind dort keine Symbole mehr zu finden. Unter Windows würde ich das damit begründen, dass da irgendwas leicht überfordert ist und ich würde ein paar Fenster durchschalten und nach kurzer Zeit wären die Symbole wieder da (oder ich beende den Verursachnenden Prozess). aber beim Raspberry kommen die Symbole nicht wieder, nur ein Neustart hilft. Woran liegt das?
Ach und kann ich mit dem Taskmanger mir auch aktive Anwendungen anzeigen lassen? Es kommt häufiger vor, dass etwas nicht mehr reagiert. Dann würde ich gerne alle aktiven Anwendungen killen. Wenn ich nur Anwendungen kille, gibts ja keine Probleme. Alle Prozesse sollte ich hingegen nicht einfach so killen, deswegen frage ich nach der Sortierung für Anwedungen
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Ich bezweifel mal ganz stark das krakenex mit Python 3.2 nicht läuft, ich habe in den 3 Python Datein nichts besonderes gefunden.Serpens66 hat geschrieben:Leider lese ich aber gerade, dass mein Modul "krakenex" mindestens Python 3.3 oder höher benötigt. https://github.com/veox/python3-krakenex
Dafür gibt es bei Linux viele Wege. Der schönste ist über den paket manager (apt z.B), bei Python kannst du unter raspbian so zum beispiel Python 2.7 und 3.2 installieren. (apt-get install python3.2 bzw. apt-get install python2.7). Man kann dem paket manager auch neue quellen "beibringen" in dem man z.B /etc/apt/source.list editiert, aber diese qullen muss man finden.Serpens66 hat geschrieben:Wie komme ich nun also zur aktuellsten Python Version? Muss ich dann requests nochmal installieren, oder ist das unabhängig davon (hauptsache python 3.x )?
Und dann gibt es noch die Variante das man es sich aus den quellen (aus dem source) selber kompiliert. Dafür müssen allerdings auch alle Abhänigkeiten installiert werden bevor man das dann kompilieren und installieren kann. Bevor du das machst solltest du etwas Linux Erfahrung sammeln.
Jeder Raspberry PI hat (bisher?) nur zwei USB ports. Du musst falls du mehr Geräte hast, mit einem USB Hub arbeiten, am besten mit extra Stromanschluss weil dem Raspberry PI sonst der Saft aus geht, aber Tastatur und Maus gehen meist auch so.Serpens66 hat geschrieben:edit:
mein Raspberry hat übrigens nur 2 USB Slots, ist also wohl die kleinste Variante. Daher kann ich neben dem WLAN auch nur eine Maus, keine Tastatur anschließen (hab zwar auch ein USB für Maus+Tastatur, aber das hängt an meinem Hauptrechner und ich wilsl nicht die ganze zeit hin und her stöpseln)
Kann das Verhalten leider nicht nachvollziehen.Serpens66 hat geschrieben:Deswegen habe ich mir auf dem Raspberry diese matchbox Bildschirmtastatur installiert. Das komische ist nun, wenn ich dieses Keyboard starte, dann verschwinden alle Desktopsymbole auf dem Desktop ?! Auch wenn ich unten links auf Desktop2 schalte, sind dort keine Symbole mehr zu finden. Unter Windows würde ich das damit begründen, dass da irgendwas leicht überfordert ist und ich würde ein paar Fenster durchschalten und nach kurzer Zeit wären die Symbole wieder da (oder ich beende den Verursachnenden Prozess). aber beim Raspberry kommen die Symbole nicht wieder, nur ein Neustart hilft. Woran liegt das?
Fenster killst du in dem du auf das X klickst reagieren sie nicht mehr kommt nach ein paar Sekunden, ein wollen sie dieses Fenster wirklich schließen. Ansonsten gibt es jetzt so eine direkt Filterung nach "die sind unwichtig" nicht wirklich. Allerdings laufen die Programme unter verschiedenen Benutzern, und du kannst (solange du kein sudo verwendest) immer nur Programme als "pi" starten.Serpens66 hat geschrieben:Ach und kann ich mit dem Taskmanger mir auch aktive Anwendungen anzeigen lassen? Es kommt häufiger vor, dass etwas nicht mehr reagiert. Dann würde ich gerne alle aktiven Anwendungen killen. Wenn ich nur Anwendungen kille, gibts ja keine Probleme. Alle Prozesse sollte ich hingegen nicht einfach so killen, deswegen frage ich nach der Sortierung für Anwedungen
In der Krakenex readme steht:
Sobald ich das dann ausgeführt habe, kann ich ja mal testen, obs unter 3.2 läuft. Allerdings wird der Autor doch eig schon seine Gründe haben, warum er extra auf 3.3 verweist, oder nicht?
zum python upgrade:
"diese Quellen muss man finden".
Ich bin doch sicherlicher nicht der einzige, der Python aktualisieren will? Ich hab schon kurz gegoogelt, es gibt hier und da ein paar Forenfragen, wo dann mehr schlecht als recht irgendwas zusammengebastelt wird. Mittlerweile muss es dafür doch aber auch eine einfache und 100% richtige Anleitung geben?! Ich such nochmal weiter..
(Mein Pc hat übrigens grad den Geist aufgegeben nach 60 Stunden Dauerbetrieb
(ist ein alter pc) wird Zeit dass ich den Raspberry zum laufen kriege
)
Edit:
hier hab ich was für python 3.3 gefunden. Jedoch irritiert mich "Ubuntu" in der Überschrift... was ist denn Ubuntu? ich hab doch Raspbian? Dennoch wird das in einem Forenbeitrag für Raspbian verlinkt... Also sollte ich das einfach mal befolgen?
http://linuxg.net/how-to-install-python ... and-12-04/
edit2:
hab noch das hier für 3.4.2 gefunden:
http://www.linuxfromscratch.org/blfs/vi ... thon3.html
Könnt ihr euch das mal anschauen und schauen, ob ich da stumpf die genannten Befehle eintippen kann, oder ob dabei Probleme auftreten werden? Z.b. als "root" etwas ausführen, muss ich dafür vorher irgendwas machen?
Danke für die restlichen Infos. An das mit den Desktopsymbolen muss ich mich halt gewöhnen.. auf die Dinge auf dem Desktop kann man ja auch anders zugreifen, zb. übers starmenü oder den Dateimanager
Wie muss dieser Befehl unter Raspbian aussehen?Run `python3 ./setup.py install`. The module will be called `krakenex`.
Sobald ich das dann ausgeführt habe, kann ich ja mal testen, obs unter 3.2 läuft. Allerdings wird der Autor doch eig schon seine Gründe haben, warum er extra auf 3.3 verweist, oder nicht?
zum python upgrade:
"diese Quellen muss man finden".
Ich bin doch sicherlicher nicht der einzige, der Python aktualisieren will? Ich hab schon kurz gegoogelt, es gibt hier und da ein paar Forenfragen, wo dann mehr schlecht als recht irgendwas zusammengebastelt wird. Mittlerweile muss es dafür doch aber auch eine einfache und 100% richtige Anleitung geben?! Ich such nochmal weiter..
(Mein Pc hat übrigens grad den Geist aufgegeben nach 60 Stunden Dauerbetrieb
Edit:
hier hab ich was für python 3.3 gefunden. Jedoch irritiert mich "Ubuntu" in der Überschrift... was ist denn Ubuntu? ich hab doch Raspbian? Dennoch wird das in einem Forenbeitrag für Raspbian verlinkt... Also sollte ich das einfach mal befolgen?
http://linuxg.net/how-to-install-python ... and-12-04/
edit2:
hab noch das hier für 3.4.2 gefunden:
http://www.linuxfromscratch.org/blfs/vi ... thon3.html
Könnt ihr euch das mal anschauen und schauen, ob ich da stumpf die genannten Befehle eintippen kann, oder ob dabei Probleme auftreten werden? Z.b. als "root" etwas ausführen, muss ich dafür vorher irgendwas machen?
Danke für die restlichen Infos. An das mit den Desktopsymbolen muss ich mich halt gewöhnen.. auf die Dinge auf dem Desktop kann man ja auch anders zugreifen, zb. übers starmenü oder den Dateimanager
-
BlackJack
@Sr4l: Das B+-Modell das irgendwann Ende letzten Jahres heraus kam hat vier USB-Anschlüsse. Die Buchse für analoges Video ist nicht mehr auf dem Board, das Signal kann man jetzt aus der analogen Audio-Buchse (Klinkenstecker) abgreifen, da ist also Stereo *und* Video drauf. Es gibt ein paar mehr GPIO-Pins und einen Micro-SD- statt SD-Slot. Es soll ausserdem (noch) weniger Strom verbrauchen als das ”alte” B-Modell.
Ich habe bei mir einen USB-Hub mit Stromanschluss am alten B2-Modell und lasse den Raspi davon versorgen. Über den USB-Anschluss!
@Serpens66: Was das mit den Desktopsymbolen angeht würde ich mal darauf tippen das Du nicht das Keyboard startest sondern die komplette Matchbox-Desktopumgebung. Da die Desktopumgebung wie der Name vermuten lässt auch für die grafische Gestaltung des Desktops zuständig ist, also auch das darstellen von Icons auf selbigem, kommt sich die Matchbox-DE da mit XFCE in die Quere was die Standarddesktopumgebung bei Raspbian ist.
Das etwas nicht mehr reagiert kommt eigentlich nicht häufig vor. Hast Du den Raspi vielleicht übertaktet und/oder gibt es vielleicht ein Wärmeproblem?
Der Grund auf 3.3 zu verweisen wird sehr wahrscheinlich sein das der Autor 3.3 eingesetzt hat als er es geschrieben hat und sich nicht die Mühe gemacht hat zu testen ob das auch unter einer früheren Version läuft.
Leute die unbedingt 3.4 haben wollen, bekommen das vielleicht auch irgendwie hin, aber dazu muss man das nötige Wissen haben um mit einer Aussage wie: „Das ist das übliche configure, make, make install.” etwas anfangen können. Oh, und dann muss es alle Abhängigkeiten aus den Paketquellen geben, oder man muss die auch noch ausserhalb der Distribution suchen. Was im übrigen auch nicht ganz ungefährlich ist wenn man nicht weiss was man tut, beziehungsweise die Betreiber von Fremdquellen für Pakete — man kann sich da auch gerne mal Teile vom System mit zerschiessen. Zum Beispiel würde ich ein Python 3.4 nicht als ``python3`` installieren, denn sonst kann es passieren das irgendein Distributionspaket nicht mehr funktioniert welches das Python 3.2 unter dem Namen erwartet hat und alle Pakete mit Python-Modulen die man *dafür* installiert hat, die dem selbst installierten Python 3.4 dann ja erst einmal fehlen.
Auf der anderen Seite: Wenn man immer das allerneueste haben möchte, dann verwendet man kein Debian stable — Raspbian baut ja auf Debian Wheezy auf.
Ich für meinen Teil bleibe bei Python 2.7 mindestens solange bis Python 3.x zum Standardpython bei den meisten Distributionen geworden ist. Und zwar bei den Versionen die man sich so als stable/LTS oder wie das dann jeweils heisst auf Server installiert.
Ich habe bei mir einen USB-Hub mit Stromanschluss am alten B2-Modell und lasse den Raspi davon versorgen. Über den USB-Anschluss!
@Serpens66: Was das mit den Desktopsymbolen angeht würde ich mal darauf tippen das Du nicht das Keyboard startest sondern die komplette Matchbox-Desktopumgebung. Da die Desktopumgebung wie der Name vermuten lässt auch für die grafische Gestaltung des Desktops zuständig ist, also auch das darstellen von Icons auf selbigem, kommt sich die Matchbox-DE da mit XFCE in die Quere was die Standarddesktopumgebung bei Raspbian ist.
Das etwas nicht mehr reagiert kommt eigentlich nicht häufig vor. Hast Du den Raspi vielleicht übertaktet und/oder gibt es vielleicht ein Wärmeproblem?
Der Grund auf 3.3 zu verweisen wird sehr wahrscheinlich sein das der Autor 3.3 eingesetzt hat als er es geschrieben hat und sich nicht die Mühe gemacht hat zu testen ob das auch unter einer früheren Version läuft.
Leute die unbedingt 3.4 haben wollen, bekommen das vielleicht auch irgendwie hin, aber dazu muss man das nötige Wissen haben um mit einer Aussage wie: „Das ist das übliche configure, make, make install.” etwas anfangen können. Oh, und dann muss es alle Abhängigkeiten aus den Paketquellen geben, oder man muss die auch noch ausserhalb der Distribution suchen. Was im übrigen auch nicht ganz ungefährlich ist wenn man nicht weiss was man tut, beziehungsweise die Betreiber von Fremdquellen für Pakete — man kann sich da auch gerne mal Teile vom System mit zerschiessen. Zum Beispiel würde ich ein Python 3.4 nicht als ``python3`` installieren, denn sonst kann es passieren das irgendein Distributionspaket nicht mehr funktioniert welches das Python 3.2 unter dem Namen erwartet hat und alle Pakete mit Python-Modulen die man *dafür* installiert hat, die dem selbst installierten Python 3.4 dann ja erst einmal fehlen.
Auf der anderen Seite: Wenn man immer das allerneueste haben möchte, dann verwendet man kein Debian stable — Raspbian baut ja auf Debian Wheezy auf.
Ich für meinen Teil bleibe bei Python 2.7 mindestens solange bis Python 3.x zum Standardpython bei den meisten Distributionen geworden ist. Und zwar bei den Versionen die man sich so als stable/LTS oder wie das dann jeweils heisst auf Server installiert.
okay, der gesuchte Befehl für das Setup war einfach "sudo python3 setup.py install" (wobei ich mich in dem entsprechendem Ordner aufhalten musste.. der Wechsel der Ordner funktioniert wie bei windows mit "cd" wie ich jetzt rausgefunden habe...)
Das Modul krakenex ist jetzt also installiert. Bei der Ausführung meines Skriptes macht nun aber requests (nicht aus dem Krakenex modul, die Funktionen sehen so aus wie hier die gezeigte Funktion (mal get, mal post): http://www.python-forum.de/viewtopic.ph ... 32#p270232 ) Probleme:
Bei der Zeile:
gibt er folgenden Fehler aus:
Das Modul krakenex ist jetzt also installiert. Bei der Ausführung meines Skriptes macht nun aber requests (nicht aus dem Krakenex modul, die Funktionen sehen so aus wie hier die gezeigte Funktion (mal get, mal post): http://www.python-forum.de/viewtopic.ph ... 32#p270232 ) Probleme:
Bei der Zeile:
Code: Alles auswählen
response = requests.get(url+pair).json()an anderer Stelle aber vermutlich auch mit requests zusammenänged (eine "post" anfrage) kommt:TypeError: 'dict' Object is not callable
Was ist die Ursache für diese Fehler?TypeError: 'NoType' object is not subsriptable
Zuletzt geändert von Serpens66 am Freitag 16. Januar 2015, 23:09, insgesamt 2-mal geändert.
^^ bitte nicht den Post über diesem hier übersehen
| |
@ BlackJack:
zum Desktopproblem:
könnte sein, dass es so ist wie du schreibst... Aber wi öffne ich denn dann nur die Tastatur? Ich hatte aus dem Dateimanager "matchbox-keyboard" raus auf den desktop kopiert und das gestartet. Außerdem befindet sich im startmenü unter "Zubehör" nun der Eintrag "Keyboard". Wenn ich ersteres starte, bleiben die Symbole zwar da, sind aber nicht mehr anwählbar. Wenn ich zweitgenanntes starte, verschwinden die Symbole halt gleich.
Außerdem habe ich gemerkt, dass in beiden Fällen der Dateimanger nicht mehr funktioniert, sobald ich die Tastatur gestartet habe. Und mit dieser Tastatur kommt er wirklich sehr sehr häufig vor, dass nicht mehr viel reagiert und beendet werden muss. Dann hilft meist nur noch ein Neustart.... (habe deswegen jetzt erstmal wieder die Maus+Tastatur Kombo drangehängt... Mein Pc braucht das ja jetzt nicht mehr, wo er hin ist -.-)
Wie muss ich die Bildschirmtastatur denn nun starten, damit nicht alles abstürzt ? "Keyboard" im Startmenü klingt doch eigentlich nicht verkehrt... ist es aber anscheinend.
| |
@ BlackJack:
zum Desktopproblem:
könnte sein, dass es so ist wie du schreibst... Aber wi öffne ich denn dann nur die Tastatur? Ich hatte aus dem Dateimanager "matchbox-keyboard" raus auf den desktop kopiert und das gestartet. Außerdem befindet sich im startmenü unter "Zubehör" nun der Eintrag "Keyboard". Wenn ich ersteres starte, bleiben die Symbole zwar da, sind aber nicht mehr anwählbar. Wenn ich zweitgenanntes starte, verschwinden die Symbole halt gleich.
Außerdem habe ich gemerkt, dass in beiden Fällen der Dateimanger nicht mehr funktioniert, sobald ich die Tastatur gestartet habe. Und mit dieser Tastatur kommt er wirklich sehr sehr häufig vor, dass nicht mehr viel reagiert und beendet werden muss. Dann hilft meist nur noch ein Neustart.... (habe deswegen jetzt erstmal wieder die Maus+Tastatur Kombo drangehängt... Mein Pc braucht das ja jetzt nicht mehr, wo er hin ist -.-)
Wie muss ich die Bildschirmtastatur denn nun starten, damit nicht alles abstürzt ? "Keyboard" im Startmenü klingt doch eigentlich nicht verkehrt... ist es aber anscheinend.
Die Fehlermeldungen recht eindeutig:
Poste bitte immer die gesamte Fehlermeldung inklusive Traceback.
Code: Alles auswählen
>>> {}()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callableCode: Alles auswählen
>>> None[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not subscriptableDas Leben ist wie ein Tennisball.
Danke EyDu für die Antwort.
....... okay ich habs jetzt aufm Raspberry in eine txt datei gepackt und diese über WinSCP rübergezogen:
das Skript try.py ist zum testen und sieht so aus:
Die Klasse PyRockin3 sieht so aus:
....... okay ich habs jetzt aufm Raspberry in eine txt datei gepackt und diese über WinSCP rübergezogen:
allerdings ist das für mich leider nicht wirklich eindeutig, was da nun nicht stimmt. Das Skript ist ja 100% richtig, da es auf Windwos funnktioniert.Nur auf dem Raspberry noch nicht.pi@raspberrypi ~/Desktop/Bot $ python3 try.py
Traceback (most recent call last):
File "try.py", line 28, in <module>
Data = rock.MarketData('btceur')
File "/home/pi/Desktop/Bot/PyRockin3.py", line 106, in MarketData
response = requests.get(url+pair).json()
TypeError: 'dict' object is not callable
das Skript try.py ist zum testen und sieht so aus:
Code: Alles auswählen
from PyRockin3 import PyRockin3
from time import sleep
rock = PyRockin3('Name','Password', 'Key')
Data = rock.MarketData('btceur')
print (Data)
sleep(1)Code: Alles auswählen
import urllib.request, urllib.parse, urllib.error
import urllib.request, urllib.error, urllib.parse
import json
import requests
import sys
class PyRockin3:
def __init__(self, Username, Password, ApiKey):
self.username=Username
self.password=Password
self.key = ApiKey
def MarketData(self, pair):
url = "https://www.therocktrading.com/api/ticker/"
response = requests.get(url+pair).json()
error = response.get('ERROR')
if error:
raise Exception(error)
return response['result'][0]
Kennst du den Fehler und möchtest, dass ich ihn selbst rausfinde, oder meinst du ich sollte so weiter gucken, was genau das Problem ist?
Ich versuche jetzt nur noch das hier auszuführen, nichts anderes:
Es kommt weiterhin der dict Fehler.
Nochweiter zerlegen ist hier für mich nicht möglich... Es wundert mich ein wenig, dass im Traceback keine einzelnen Dinge von requests angesprochen werden... denn das bleibt doch als einzige Fehlerquelle übrig, oder etwa nicht?
Ich versuche jetzt nur noch das hier auszuführen, nichts anderes:
Code: Alles auswählen
import urllib.request, urllib.parse, urllib.error
import urllib.request, urllib.error, urllib.parse
import json
import requests
import sys
print(requests.get("https://www.therocktrading.com/api/ticker/btceur").json())Nochweiter zerlegen ist hier für mich nicht möglich... Es wundert mich ein wenig, dass im Traceback keine einzelnen Dinge von requests angesprochen werden... denn das bleibt doch als einzige Fehlerquelle übrig, oder etwa nicht?
Natürlich kannst du das noch weiter zerlegen:
Das machst du jetzt auf beiden Rechnern und vergleichst die Ergebnisse.
Anschließend wirfst du dann mal die Suchmaschine deiner Wahl an und suchst die Ursache
Code: Alles auswählen
get = requests.get
print(get)
result = get("https://www.therocktrading.com/api/ticker/btceur")
print result
json = result.json
print json
print json()Anschließend wirfst du dann mal die Suchmaschine deiner Wahl an und suchst die Ursache
Code: Alles auswählen
python request 'dict' object is not callableDas Leben ist wie ein Tennisball.
ich tippe mal darauf, dass du die Lösung bereits kennst, richtig?
Find ich ein bisschen "gemein", dass du mich so kleinlich auf Fehlersuche schickst, denn bringen tut das ja überhaupt nichts
=P
Ich hab jetzt mal gleich gegoogelt und bin auf folgendes gestoßen:
Jedenfalls war genau das das Problem...
es muss also: heißen, ohne die Klammern nach .json .
Ich sehe gerade in deinem Code Beispiel hast du die Klammern auch nicht geschrieben...und dann doch wieder, als ja du kanntest den Fehler ^^
und so hätte ich rausgefunden, dass .json funktioniert aber .json() nicht...
Naja.. genau das ist der Grund, weshalb ich von Anfang an 3.4.2 haben wollte, damit genau solche fehler nicht auftreten
Wer weiß was da noch alles geändert und in Funktionen umgewandelt wurde oder nicht =/ Echt schade/merkwürdig, dass es immernoch so umständlich ist, die Pythonversion zu aktualsieren. BlackJack schreibt ja sinngemäß, dass die Version eigentlich egal ist und eher eine Glaubensfrage ist, wofür man sich entscheidet. Aber wie man sieht ist das nicht ganz so einfach.. es gibt schon ziemlich viele kleine Änderungen und ganz sicher auch Große ...
edit:
ach, ändere ich das Skript jetzt überall zu ".json", oder versuche ich requests zu updaten? Oder geht das updaten von requests nur mit python 3.4.2? ... btw. hängt requests mit json zusammen? Ich dachte eigentlich das wären zwei unabhängige Module ( weil ich glaube ich beides einzeln importieren muss) ? Oder was hab ich jetzt falsch verstanden?
Ach und natürlich trotz "gemein sein" danke fürs Helfen
EDIT2:
so, der fehler ist behoben, jetzt kommen natürlich die Fehler die Krakenex verursacht >.< Ich hab echt das Gefühl, dass es einfacher und sinnvoller wäre, wenn ich 3.4.2 hätte... =/ Naja ich schau mal was ich dazu jetzt noch rausfinde und psote dafür dann gegebenenfalls einen neuen post.
Find ich ein bisschen "gemein", dass du mich so kleinlich auf Fehlersuche schickst, denn bringen tut das ja überhaupt nichts
Ich hab jetzt mal gleich gegoogelt und bin auf folgendes gestoßen:
Selbst wenn ich das alles tatsächlich noch kleiner zerlegt hätte, wie du schreibst, wäre ich dennoch nie auf diese Ursache gekommen(deswegen "gemein" =P ). Woher soll ich denn wissen, in welcher Version was eine Funktion ist und in welcher version nicht.You are using an early release of the requests library. The API for the .json attribute changed; since at least 1.0 of the library it is now a function.
The pyelastic requires requests 1.0 or newer; upgrade the library.
Jedenfalls war genau das das Problem...
es muss also:
Code: Alles auswählen
print(requests.get("https://www.therocktrading.com/api/ticker/btceur").json)Ich sehe gerade in deinem Code Beispiel hast du die Klammern auch nicht geschrieben...und dann doch wieder, als ja du kanntest den Fehler ^^
und so hätte ich rausgefunden, dass .json funktioniert aber .json() nicht...
Naja.. genau das ist der Grund, weshalb ich von Anfang an 3.4.2 haben wollte, damit genau solche fehler nicht auftreten
edit:
ach, ändere ich das Skript jetzt überall zu ".json", oder versuche ich requests zu updaten? Oder geht das updaten von requests nur mit python 3.4.2? ... btw. hängt requests mit json zusammen? Ich dachte eigentlich das wären zwei unabhängige Module ( weil ich glaube ich beides einzeln importieren muss) ? Oder was hab ich jetzt falsch verstanden?
Ach und natürlich trotz "gemein sein" danke fürs Helfen
EDIT2:
so, der fehler ist behoben, jetzt kommen natürlich die Fehler die Krakenex verursacht >.< Ich hab echt das Gefühl, dass es einfacher und sinnvoller wäre, wenn ich 3.4.2 hätte... =/ Naja ich schau mal was ich dazu jetzt noch rausfinde und psote dafür dann gegebenenfalls einen neuen post.
Das ist halt pädagogisch sinnvolle HilfeSerpens66 hat geschrieben:Find ich ein bisschen "gemein", dass du mich so kleinlich auf Fehlersuche schickst, denn bringen tut das ja überhaupt nichts=P
Du wärst zumindest über den Unterschied gestolpert und hättest dazu eine Frage stellen können. Dann hätte ich dir die Antwort auch verraten.Serpens66 hat geschrieben:Selbst wenn ich das alles tatsächlich noch kleiner zerlegt hätte, wie du schreibst, wäre ich dennoch nie auf diese Ursache gekommen(deswegen "gemein" =P ). Woher soll ich denn wissen, in welcher Version was eine Funktion ist und in welcher version nicht.
Beim Schreiben des Codes kannte ich den Unterschied auch noch nicht, ich habe einfach nur jeden Schritt haarklein zerlegt. Die Fehlermeldung war ja auch eindeutig, da konnte es nur an zwei Stellen liegen. Und welche von beiden war, zumindest für mich, offensichtlich. Eine kurze Suche hat die Vermutung dann auch bestätigt.Serpens66 hat geschrieben:Ich sehe gerade in deinem Code Beispiel hast du die Klammern auch nicht geschrieben...und dann doch wieder, als ja du kanntest den Fehler ^^
und so hätte ich rausgefunden, dass .json funktioniert aber .json() nicht...
Das Problem ist nicht die Python-Version sondern die requests-Version. Du müsstest also das Modul aktualisieren. Oder du schreibst einfach ein wenig zusätzlichen Code:Serpens66 hat geschrieben:Naja.. genau das ist der Grund, weshalb ich von Anfang an 3.4.2 haben wollte, damit genau solche fehler nicht auftretenWer weiß was da noch alles geändert und in Funktionen umgewandelt wurde oder nicht =/
Code: Alles auswählen
def get(url):
result = requests.get(url).json
try:
result = result()
except TypeError:
pass
return resultrequests verwendet das json-Modul. Ob du es in deinem Code importieren musst hängt davon ab, ob du auch Funktion aus dem Modul nutzen möchtest. Wenn du das nicht tust, dann musst du das auch nicht importieren. Wäre ja sonst Wahnsinn, wenn man für alle verwendeten Module deren importierte Module auch noch importieren müsste.Serpens66 hat geschrieben:btw. hängt requests mit json zusammen? Ich dachte eigentlich das wären zwei unabhängige Module ( weil ich glaube ich beides einzeln importieren muss) ? Oder was hab ich jetzt falsch verstanden?
Das Leben ist wie ein Tennisball.
Vorweg:
danke EyDu, ja hast schon recht, dass ich mir so die Fehler besser merken kann
Allerdings wäre ich ohne hier zu fragen vermutlich nicht auf die Idee gekommen, nach den von dir genannten Stichworten zu suchen. Für das folgende Problem hab ich das aber jetzt schon erledigt, ich stoße nur leider auf zahlreiche weitere Probleme... :
Der neue Fehlerbericht lautet:
Google sagt mir, dass hmac in Python 2 wohl string und Bytes akzeptiert hat, dies in PYthon 3 aber wohl nicht mehr so ist,und nur noch Bytes akzeptiert werden. Da auf 3.4.2 Das Skritp aber wunderbar funktioniert und es für 3.3 geschrieben wurde, ist diese Info vermutlich auchshcon wieder veraltet. Möglicherweise ist DAS also der Grund, weshalb der Autor schreibt, dass Python 3.3 vorausgesetzt ist (das oder einer der vermutlich vor mir liegenden 100 weiterer Fehler auf die ich noch stoßen werde >.< )
Ich hab keine Ahnung, wie ich da nun bytes draus mache. In einem Beispiel wird geschrieben:
Nun ist heir das Problem, dass Krakenex ja als modul installiert wurde. Ich erkenne, dass eine Änderung im Skript (das auf dem desktop im Ordner "bot"), keine Auswirkungen auf die Fehlermeldung hat. In der fehlermeldung steht die Fehlerzeile trotz Änderung immernoch ohne ".encode()" ... Angeblich soll sich das Modul ja nun in "usr/lib/python3.2/dist-packages" befinden. Ich finde im python3.2 Ordner aber nichts, das dist-packages heißt ?!
Im python3 Ordner, da gibt es "dist-packages" aber da ist kein krakenex drin... Wobei ich mich da grad wieder frage: Wird hier jetzt zwischen python3 und python 3.2 unterschieden??? Habe ich requests jetzt nur für python 3,aber nicht für python 3.2 installiert? (man ist das unnötig kompliziert,ich verzweifle so langsam
)
Ich komme zu dem Schluss, dass es gut möglich ist, dass noch hunderte weitere solcher Fehler auf mich warten. Deshalb nochmal die Frage: Kann ich die Umwandlung zu 3.4.2 so vornehmen,wie hier beschrieben?
http://www.linuxfromscratch.org/blfs/vi ... thon3.html
Und wenn ja, muss ich für den "root" was bestimmtes machen, oder reicht es einfach nur das abzutippen, was dort geschrieben wird?
Oder wird mir das auch nichts bringen, da im requests Fall ja nur requests veraltet war? (warum eigentlich ich habs doch frisch installiert, wieso installiert der eine veraltete version?? )
Edit: Wie aktualisiere ich denn requests?? Meine Recherche ergibt, dass eigentlich alles aktualisiert werden sollte, wenn ich "sudo apt-get update" bzw. dasselbe mit upgrade durchführe. Aber requests ist offensichtlich auch danach immernoch alt, da die json() Problematik nicht gelöst ist.
(habe noch diese Seite gefunden: http://www.raspberrypi.org/documentatio ... /python.md , da steht an sich das, was ich im Eingangspost gefragt habe, weshalb ich das mit "pip-3.3 install requests" nochmal testen wollte, aber das funktioniert auch nicht. Er sagt dann "pip-3.3 Kommando nicht vorhanden" und wenn ich python3 davor schreibe,dann findet er mal wieder "no such file or directory" Im Ordner Python3/dist-packages gibt es nur pip, kein pip-3.3 . wenn ich mich in diesem Ordner befinde und "python3 pip install requests" versuche,dann kommt die Meldung "can't find '__main__' module in pip"... Ja.. das alles hab ich probiert aber es geht nicht. Warum nicht??
Warum ich das noch versuche? Weil auf der Seite steht, dass die Module die ich nicht über pip installiere meistens veraltet sind (was der Grund für mein altes requests ist).
danke EyDu, ja hast schon recht, dass ich mir so die Fehler besser merken kann
Der neue Fehlerbericht lautet:
Während ich beim vorherigen Skript noch so ungefähr wusste, was wofür da ist, habe ich bei krakenex leider keine Ahnung wie es funktioniert, hauptsache es funktioniert... Daher habe ichauch keine ahnung was hmac.new so macht oder machen soll.Traceback (most recent call last):
File "MainKrakenRock.py", line 1404, in <module>
KrakenRock().suchen()
File "MainKrakenRock.py", line 496, in suchen
MyBalance_kraken = self.get_balance("Kraken") #muss nur einmal abgefragt werden und liefert liste aller currencies
File "MainKrakenRock.py", line 1096, in get_balance
raise last_error
File "MainKrakenRock.py", line 1070, in get_balance
return k.query_private("Balance")["result"] # in einer Anfrage werden alle balances abgefragt.
File "/usr/local/lib/python3.2/dist-packages/krakenex/api.py", line 136, in query_private
signature = hmac.new(base64.b64decode(self.secret),
File "/usr/lib/python3.2/base64.py", line 83, in b64decode
raise TypeError("expected bytes, not %s" % s.__class__.__name__)
TypeError: expected bytes, not str
Google sagt mir, dass hmac in Python 2 wohl string und Bytes akzeptiert hat, dies in PYthon 3 aber wohl nicht mehr so ist,und nur noch Bytes akzeptiert werden. Da auf 3.4.2 Das Skritp aber wunderbar funktioniert und es für 3.3 geschrieben wurde, ist diese Info vermutlich auchshcon wieder veraltet. Möglicherweise ist DAS also der Grund, weshalb der Autor schreibt, dass Python 3.3 vorausgesetzt ist (das oder einer der vermutlich vor mir liegenden 100 weiterer Fehler auf die ich noch stoßen werde >.< )
Ich hab keine Ahnung, wie ich da nun bytes draus mache. In einem Beispiel wird geschrieben:
Muss ich also nun an die ersten beiden Parameter ".encode()" dranhängen und dann passt das?On python3, HMAC needs bytes for key and msg.
Try to replace:
return HMAC(key, msg, digestmod)
by:
return HMAC(key.encode(), msg.encode(), digestmod)
Nun ist heir das Problem, dass Krakenex ja als modul installiert wurde. Ich erkenne, dass eine Änderung im Skript (das auf dem desktop im Ordner "bot"), keine Auswirkungen auf die Fehlermeldung hat. In der fehlermeldung steht die Fehlerzeile trotz Änderung immernoch ohne ".encode()" ... Angeblich soll sich das Modul ja nun in "usr/lib/python3.2/dist-packages" befinden. Ich finde im python3.2 Ordner aber nichts, das dist-packages heißt ?!
Im python3 Ordner, da gibt es "dist-packages" aber da ist kein krakenex drin... Wobei ich mich da grad wieder frage: Wird hier jetzt zwischen python3 und python 3.2 unterschieden??? Habe ich requests jetzt nur für python 3,aber nicht für python 3.2 installiert? (man ist das unnötig kompliziert,ich verzweifle so langsam
Ich komme zu dem Schluss, dass es gut möglich ist, dass noch hunderte weitere solcher Fehler auf mich warten. Deshalb nochmal die Frage: Kann ich die Umwandlung zu 3.4.2 so vornehmen,wie hier beschrieben?
http://www.linuxfromscratch.org/blfs/vi ... thon3.html
Und wenn ja, muss ich für den "root" was bestimmtes machen, oder reicht es einfach nur das abzutippen, was dort geschrieben wird?
Oder wird mir das auch nichts bringen, da im requests Fall ja nur requests veraltet war? (warum eigentlich ich habs doch frisch installiert, wieso installiert der eine veraltete version?? )
Edit: Wie aktualisiere ich denn requests?? Meine Recherche ergibt, dass eigentlich alles aktualisiert werden sollte, wenn ich "sudo apt-get update" bzw. dasselbe mit upgrade durchführe. Aber requests ist offensichtlich auch danach immernoch alt, da die json() Problematik nicht gelöst ist.
(habe noch diese Seite gefunden: http://www.raspberrypi.org/documentatio ... /python.md , da steht an sich das, was ich im Eingangspost gefragt habe, weshalb ich das mit "pip-3.3 install requests" nochmal testen wollte, aber das funktioniert auch nicht. Er sagt dann "pip-3.3 Kommando nicht vorhanden" und wenn ich python3 davor schreibe,dann findet er mal wieder "no such file or directory" Im Ordner Python3/dist-packages gibt es nur pip, kein pip-3.3 . wenn ich mich in diesem Ordner befinde und "python3 pip install requests" versuche,dann kommt die Meldung "can't find '__main__' module in pip"... Ja.. das alles hab ich probiert aber es geht nicht. Warum nicht??
Warum ich das noch versuche? Weil auf der Seite steht, dass die Module die ich nicht über pip installiere meistens veraltet sind (was der Grund für mein altes requests ist).
