New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
webbrowser.UnixBrowser should use builtins.open #48787
Comments
On the joyous occasion of Python 3000's release my friends & I were Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/.../lib/python3.0/antigravity.py", line 4, in <module>
webbrowser.open("http://xkcd.com/353/")
File "/.../lib/python3.0/webbrowser.py", line 61, in open
if browser.open(url, new, autoraise):
File "/.../lib/python3.0/webbrowser.py", line 275, in open
success = self._invoke(args, True, autoraise)
File "/.../lib/python3.0/webbrowser.py", line 226, in _invoke
inout = open(os.devnull, "r+")
File "/.../lib/python3.0/webbrowser.py", line 61, in open
if browser.open(url, new, autoraise):
File "/.../lib/python3.0/webbrowser.py", line 271, in open
"expected 0, 1, or 2, got %s" % new)
webbrowser.Error: Bad 'new' parameter to open(); expected 0, 1, or 2, got r+ I believe the following patch (against branches/release30-maint) fixes Index: Lib/webbrowser.py --- Lib/webbrowser.py (revision 67538)
+++ Lib/webbrowser.py (working copy)
@@ -8,6 +8,7 @@
import stat
import subprocess
import time
+import builtins
__all__ = ["Error", "open", "open_new", "open_new_tab", "get", "register"]
@@ -223,7 +224,7 @@
cmdline = [self.name] + raise_opt + args
if remote or self.background:
- inout = open(os.devnull, "r+")
+ inout = builtins.open(os.devnull, "r+")
else:
# for TTY browsers, we need stdin/out
inout = None |
I'd suggest the same thing that was done on lines 351-352. Index: Lib/webbrowser.py --- Lib/webbrowser.py (revision 67538)
+++ Lib/webbrowser.py (working copy)
@@ -223,7 +223,8 @@
cmdline = [self.name] + raise_opt + args
if remote or self.background:
- inout = open(os.devnull, "r+")
+ import io
+ inout = io.open(os.devnull, "r+")
else:
# for TTY browsers, we need stdin/out
inout = None |
Fixed in 67539 (py3k) and 67540 (release30-maint) |
I believe you forgot to "import io" in UnixBrowser (line 226). |
sorry**10... probably a wrong copy operation because the Linux machine |
Merged the 2nd fix with r67602. |
This problem is happening in my linux box: Python 3.2 (r32:88445, Feb 21 2011, 01:55:53)
[GCC 4.5.2 20110127 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import antigravity
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/antigravity.py", line 5, in <module>
webbrowser.open("http://xkcd.com/353/")
File "/usr/lib/python3.2/webbrowser.py", line 62, in open
if browser.open(url, new, autoraise):
File "/usr/lib/python3.2/webbrowser.py", line 276, in open
success = self._invoke(args, True, autoraise)
File "/usr/lib/python3.2/webbrowser.py", line 239, in _invoke
stderr=inout, preexec_fn=setsid)
File "/usr/lib/python3.2/subprocess.py", line 736, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1330, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 9] Bad file descriptor
>>> |
Despite the apparent similarity, your issue is something different from what was reported in this issue. Could you please open a new issue for your problem? |
yes, you right, I will create a new issue, thanks. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: