This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2008年12月04日 21:49 by schmichael, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Messages (9) | |||
|---|---|---|---|
| msg76931 - (view) | Author: Michael Schurter (schmichael) | Date: 2008年12月04日 21:49 | |
On the joyous occasion of Python 3000's release my friends & I were playing with "import antigravity" and it failed for someone with the following traceback (anonymized): 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 it cleanly: 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 |
|||
| msg76946 - (view) | Author: (gumpy) | Date: 2008年12月04日 23:51 | |
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 |
|||
| msg76957 - (view) | Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) | Date: 2008年12月05日 01:08 | |
Fixed in 67539 (py3k) and 67540 (release30-maint) Thanks for the report! |
|||
| msg76968 - (view) | Author: Michael Schurter (schmichael) | Date: 2008年12月05日 03:47 | |
I believe you forgot to "import io" in UnixBrowser (line 226). |
|||
| msg76983 - (view) | Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) | Date: 2008年12月05日 08:35 | |
sorry**10... probably a wrong copy operation because the Linux machine where I tested did not have my svn ssh keys. Someone already corrected this on py3k (r67544, thanks to Fred!), I'll take care of merging it to the 3.0 branch. |
|||
| msg77083 - (view) | Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) | Date: 2008年12月05日 22:21 | |
Merged the 2nd fix with r67602. |
|||
| msg133704 - (view) | Author: (ackounts) | Date: 2011年04月14日 02:51 | |
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 >>> |
|||
| msg133725 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2011年04月14日 11:36 | |
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? |
|||
| msg133775 - (view) | Author: (ackounts) | Date: 2011年04月14日 21:49 | |
yes, you right, I will create a new issue, thanks. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:42 | admin | set | github: 48787 |
| 2011年04月14日 21:49:43 | ackounts | set | type: crash -> messages: + msg133775 components: + None, - Library (Lib) versions: - Python 3.2 |
| 2011年04月14日 11:36:38 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg133725 |
| 2011年04月14日 02:51:41 | ackounts | set | nosy:
+ ackounts messages: + msg133704 versions: + Python 3.2, - Python 3.0 |
| 2008年12月05日 22:21:11 | amaury.forgeotdarc | set | status: open -> closed messages: + msg77083 |
| 2008年12月05日 08:35:08 | amaury.forgeotdarc | set | status: closed -> open messages: + msg76983 |
| 2008年12月05日 03:47:32 | schmichael | set | messages: + msg76968 |
| 2008年12月05日 01:08:17 | amaury.forgeotdarc | set | status: open -> closed resolution: fixed messages: + msg76957 |
| 2008年12月05日 00:59:18 | amaury.forgeotdarc | set | assignee: amaury.forgeotdarc nosy: + amaury.forgeotdarc |
| 2008年12月04日 23:51:43 | gumpy | set | nosy:
+ gumpy messages: + msg76946 |
| 2008年12月04日 21:49:09 | schmichael | create | |