View previous topic :: View next topic |
Author |
Message |
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2931 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Thu Dec 25, 2008 11:49 pm Post subject: [python] ist mein python kaputt? |
|
|
Ich wollte die Doku von inkscape über das "Help" menü anzeigen und ich bekam überall den folgenden Fehler:
Code: |
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
self.run()
File "/usr/share/inkscape/extensions/webbrowser_manual.py", line 11, in run
webbrowser.open(self.url)
File "/usr/lib/python2.5/webbrowser.py", line 61, in open
if browser.open(url, new, autoraise):
File "/usr/lib/python2.5/webbrowser.py", line 275, in open
success = self._invoke(args, True, autoraise)
File "/usr/lib/python2.5/webbrowser.py", line 238, in _invoke
stderr=inout, preexec_fn=setsid)
File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
errread, errwrite)
File "/usr/lib/python2.5/subprocess.py", line 1091, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
|
Ich kann leider kein Python, aber mir ist aufgefallen, dass kein Skript, der das Modul webbrowser verwendet, auch richtig arbeitet sondern diese Fehlermeldung erzeugt:
Code: |
$ Python 2.5.2 (r252:60911, Oct 29 2008, 01:51:56)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import webbrowser
>>> webbrowser.open("http://www.gentoo.org/")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/webbrowser.py", line 61, in open
if browser.open(url, new, autoraise):
File "/usr/lib/python2.5/webbrowser.py", line 275, in open
success = self._invoke(args, True, autoraise)
File "/usr/lib/python2.5/webbrowser.py", line 238, in _invoke
stderr=inout, preexec_fn=setsid)
File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
errread, errwrite)
File "/usr/lib/python2.5/subprocess.py", line 1091, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
|
Ich hab leider keine Ahnung, wie ich das reparieren kann, Google hat leider nicht weiter geholfen, denn das einzige, was ich an sich finde sind howtos, wie man dieses Modul verwendet.
Danke in voraus.
Gruss
Pablo _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5175
|
Posted: Fri Dec 26, 2008 7:39 pm Post subject: |
|
|
scheinbar findet python die Datei webbrowser.py oder die subprocess.py nicht _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
franzf Advocate
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Fri Dec 26, 2008 8:00 pm Post subject: |
|
|
Ich glaub schon, dass die Dateien existieren. Vllt. findet er ein Browser-executable nicht?
Frag mal in der Console nach $BROWSER.
Das sollte dann nämlich auch in der python-Umgebungsvariablen stehen:
Code: | $ python
>>> import os
>>> os.environ["BROWSER"]
'/usr/bin/opera' |
Wenn da was nicht passt, hätten wir einen möglichen Kandidaten. |
|
Back to top |
|
|
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2931 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Fri Dec 26, 2008 10:45 pm Post subject: |
|
|
firefly wrote: | scheinbar findet python die Datei webbrowser.py oder die subprocess.py nicht |
am Tracebak sieht man, dass es diese Dateien existieren
franzf wrote: | Ich glaub schon, dass die Dateien existieren. Vllt. findet er ein Browser-executable nicht?
Frag mal in der Console nach $BROWSER.
Das sollte dann nämlich auch in der python-Umgebungsvariablen stehen:
Code: | $ python
>>> import os
>>> os.environ["BROWSER"]
'/usr/bin/opera' |
Wenn da was nicht passt, hätten wir einen möglichen Kandidaten. |
'/usr/bin/opera -newpage'
ich habe eine BROWSER Variable, nämlich '/usr/bin/opera -newpage'. Hab aber auf '/usr/bin/opera' verändert und den Test nochmal gestartet:
Code: |
Python 2.5.2 (r252:60911, Oct 29 2008, 01:51:56)
[GCC 4.1.2 (Gentoo 4.1.2 p1.0.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ["BROWSER"]
'opera'
>>> import webbrowser
>>> webbrowser.open("http://www.gentoo.org/")
True
>>>
|
Fehler zwar nicht mehr vorhanden, aber außer 'True' passiert nichts, sprich weder eine neue opera Instaz wird geöffnet noch ein Tab mit der URL wird erzeugt.
edit: hab zu Testzwecken unset BROWSER eingegeben und den Test gestartet. Da wird sehr wohl ein neues Tab in Opera aufgemacht. Das verstehe ich nicht, Auf dem Notebook (mit an sich identischer Konfiguration und gleicher Updatestand) wird Firefox gestartet... _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
franzf Advocate
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Sat Dec 27, 2008 11:10 am Post subject: |
|
|
Sry, mein Fehler
Hat bei mir geklappt, sofort, aber mit firefox. Bei mir war BROWSER auf den 3.5er-konqueror gesetzt, der aber nimmer existiert, drum wohl default->firefox.
Hab dann mal schnell auf opera umgestellt und den output gepostet, geklappt hat es nicht
Aber ich komm der Sache näher
Irgendwo in webbrowser.py werden dem opera Argumente mitgegeben, die er nicht verträgt.
Hab zum Test in webbrowser.py einen print eingebaut:
Code: | >>> webbrowser.open("sf.net")
['opera', '-raise', '-remote', 'openURL(sf.net)'] |
Code: | $ opera -raise -remote sf.net
opera: Unknown argument: -raise |
-raise kennt er nicht und bricht gleich ab.
Wenn ich nur "-raise" entferne, dann kommt zwar kein Fehler, aber mit "-remote" tut sich immer noch nix :/
Erst wenn ich alle Argumente entferne, öffnet sich opera.
Da muss man wohl eine Unterscheidung einbauen, dass das mit opera wieder klappt.
Solange wirst du wohl deinen BRWOSER auf was anderes umstellen müssen...
Grüße
Franz
EDIT//
Lösung:
Code: | $ grep Opera /usr/lib64/python2.5/webbrowser.py -n
312:class Opera(UnixBrowser):
313: "Launcher class for Opera browser."
483: # Opera, quite popular
485: register("opera", None, Opera("opera")) |
Öffne webbrowser.py, editiere in class Opera die Variable "raise_opts"
Code: | raise_opts = ["-noraise", ""] |
So klappt webbrowser.py wieder mit opera. |
|
Back to top |
|
|
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2931 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Sat Dec 27, 2008 6:49 pm Post subject: |
|
|
Hi
die Opera Option sollte lieber -newtab heißen.
Ich hab geschrieben, dass es wieder geht, aber erst als ich die BROWSER Variable nicht gesetzt habe (also unset BROWSER) und dass es bei mir Opera gestartet hat (statt firefox) fand ich schon erstaunlich (aber auch befriedigend, da ich Opera Nutzer bin), aber das kann ich mir nicht vorstellen, denn unter Unix gibt es auf BROWSER keine Stelle, wo man den "Standardbrowser" setzen könnte. _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|