I have updated my branch and redid the aforementioned steps using
both python 2.7 and python 3.
I confirm that this bug is fixed.
Thank you for your help and time.
On Thu, Feb 2, 2012 at 3:29 PM, Andreas Roehler
<email address hidden> wrote:
> Am 02.02.2012 04:35, schrieb Sara:
>> Hi Andreas,
>>
> Hi,
>
>> I checked out the current trunk last night using the following command:
>>
>> bzr branch lp:python-mode # This is the correct command, isn't it?
>
> yes, thanks.
>
>> My py-version is now 6.0.5
>
> correct. it should be higher the released version.
>
>>
>> So, redoing the steps reported earlier leads to a new error:
>>
>> or: Wrong number of arguments: (lambda (&optional arg) "Looks for an appropriate mode function.
>
> fixed, thanks
>
>>
>> This does the following:
>> - look for an interpreter with `py-choose-shell-by-shebang'
>> - examine imports using `py-choose-shell-by-import'
>> - if not successful, return default value of `py-shell-name'
>>
>> With \\[universal-argument]) user is prompted to specify a reachable Python version." (interactive "P") (let ((erg (cond ((eq 4 (prefix-numeric-value arg)) (read-from-minibuffer "Python Shell\
>> : " py-shell-name)) (py-use-local-default (if (not (string= "" py-shell-local-path)) (expand-file-name py-shell-local-path) (message "Abort: `py-use-local-default' is set to `t' but `py-shell\
>> -local-path' is empty. Maybe call `py-toggle-local-default-use'"))) ((py-choose-shell-by-shebang)) ((py-choose-shell-by-import)) (t (default-value (quote py-shell-name)))))) (when (interactiv\
>> e-p) (message "%s" erg)) (setq py-shell-name erg) erg)), 3
>> Using `python-mode' version 6.0.5
>> You can run the command `py-version' with C-c C-v
>> or: Wrong number of arguments: (lambda (&optional arg) "Looks for an appropriate mode function.
>>
>> This does the following:
>> - look for an interpreter with `py-choose-shell-by-shebang'
>> - examine imports using `py-choose-shell-by-import'
>> - if not successful, return default value of `py-shell-name'
>>
>> With \\[universal-argument]) user is prompted to specify a reachable Python version." (interactive "P") (let ((erg (cond ((eq 4 (prefix-numeric-value arg)) (read-from-minibuffer "Python Shell\
>> : " py-shell-name)) (py-use-local-default (if (not (string= "" py-shell-local-path)) (expand-file-name py-shell-local-path) (message "Abort: `py-use-local-default' is set to `t' but `py-shell\
>> -local-path' is empty. Maybe call `py-toggle-local-default-use'"))) ((py-choose-shell-by-shebang)) ((py-choose-shell-by-import)) (t (default-value (quote py-shell-name)))))) (when (interactiv\
>> e-p) (message "%s" erg)) (setq py-shell-name erg) erg)), 3
>>
>> The solution is to amend line 7685 of python-mode.el to:
>> (defun py-choose-shell (&rest arg)
>>
>> But this still results in the same error. I found that the solution is to amend line 5753 of python-mode.el to:
>> (format "import sys,imp\nif '%s' in sys.modules:\n imp.reload(%s)\nelse:\n import %s\n"
>> m m m))
>>
>> The reason is that has_key and reload has been removed in python3
>> (http://docs.python.org/release/3.0.1/whatsnew/3.0.html)
>
> applied, thanks a lot!
>
> BTW don't hesitate to make a feature request, should you feel
> python-mode could deliver something useful for you.
>
> Andreas
>
>>
>> Doing the aforementioned changes fixes the bug on my PC.
>>
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/923575
>
> Title:
> py-execute-import-or-reload bug with python3
>
> Status in An Emacs mode for editing Python code:
> In Progress
>
> Bug description:
> Hi,
>
> I think there is a bug when running C-c RET using a python3
> interpreter. The following are the steps to reproduce the error:
>
> 1. Create a new python file, e.g. xxx.py
>
> 2. C-u C-! and type 'python3'.
>
> 3. Type any valid python expression, e.g. print("hello world"). There
> is no need to import any modules.
>
> 4. C-c C-c (python3 correctly executes the file).
>
> 5. C-c RET and press RET again. The last RET is bound to the command comint-send-input. To be precise, C-c RET moves me to the *Python3* buffer, where the cursor is preceded by '... ... ... ...'. Typing anything e.g. print("hello") followed by RET would result in the following error:
> File "<stdin>", line 5
> print("helo")
> ^
> SyntaxError: invalid syntax
>
> 6. Results in the following error:
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> AttributeError: 'dict' object has no attribute 'has_key'
>
> The following are my systems details:
>
> Emacs version: GNU Emacs 24.0.92.2 (x86_64-pc-linux-gnu)
> python-mode.el version: 6.0.4
> Python3 interpreter version: Python 3.1.4
>
> The following is the output of M-x report-emacs-bug
>
> In GNU Emacs 24.0.92.2 (x86_64-pc-linux-gnu)
> of 2012-01-14 on localhost
> configured using `configure '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--libdir=/usr/lib64' '--disable-dependency-tracking' '--program-suffix=-emacs-24' '--infodir=/usr/share/info/emacs-24' '--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64' '--with-gameuser=games' '--without-compress-info' '--disable-maintainer-mode' '--without-hesiod' '--without-kerberos' '--without-kerberos5' '--with-gpm' '--with-dbus' '--without-gnutls' '--without-xml2' '--without-selinux' '--with-sound' '--without-x' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CFLAGS=-O2 -pipe -march=native -mtune=native' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''
>
> Important settings:
> value of $LC_ALL: nil
> value of $LC_COLLATE: nil
> value of $LC_CTYPE: nil
> value of $LC_MESSAGES: nil
> value of $LC_MONETARY: nil
> value of $LC_NUMERIC: nil
> value of $LC_TIME: nil
> value of $LANG: nil
> value of $XMODIFIERS: nil
> locale-coding-system: nil
> default enable-multibyte-characters: t
>
> Major mode: Comint
>
> Minor modes in effect:
> ido-everywhere: t
> shell-dirtrack-mode: t
> file-name-shadow-mode: t
> global-font-lock-mode: t
> font-lock-mode: t
> auto-composition-mode: t
> auto-encryption-mode: t
> auto-compression-mode: t
> line-number-mode: t
> transient-mark-mode: t
>
> Recent input:
> ESC [ > 0 ; 1 1 5 ; 0 c x C-x 1 C-x C-f / t m p RET
> s a m p RET C-x C-s C-u C-c ! 3 RET C-x o C-c C-c C-x
> o C-c RET RET ESC x r e p o TAB r TAB RET
>
> Recent messages:
> ("/usr/bin/emacs")
> Loading ido...done
> OVERVIEW
> (No changes need to be saved)
> Python3
> Wrote /tmp/Python3164736yE.py
> (No files need saving)
> Making completion list...
>
> Load-path shadows:
> /etc/emacs/site-start hides /usr/share/emacs/site-lisp/site-start
>
> Features:
> (shadow sort mail-extr message rfc822 mml mml-sec mm-decode mm-bodies
> mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
> mail-utils gmm-utils mailheader emacsbug help-mode view imenu org-indent
> org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo
> org-infojs org-html org-exp ob-exp org-exp-blocks org-info org-gnus
> org-docview org-bibtex bibtex org-bbdb tramp-cache tramp tramp-compat
> auth-source eieio gnus-util mm-util mail-prsvr password-cache
> format-spec tramp-loaddefs org-colview clojure-mode-autoloads
> paredit-autoloads package tabulated-list zenburn-theme ido cus-start
> cus-load cal-iso org-agenda remember org-remember org-datetree org
> byte-opt warnings bytecomp byte-compile cconv macroexp ob-emacs-lisp
> ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys
> ob ob-eval org-pcomplete org-list org-faces org-compat org-entities
> org-macs time-date noutline outline easy-mmode cal-menu calendar
> cal-loaddefs python-mode rx advice advice-preload derived edmacro kmacro
> highlight-indentation help-fns cc-cmds cc-engine ansi-color compile
> tool-bar cl site-gentoo ess-toolbar ess-mouse mouseme thingatpt
> browse-url ess-menu ess-swv ess-noweb noweb-font-lock-mode ess-bugs-l
> essd-els ess-sas-d ess-sas-l ess-sas-a executable shell pcomplete
> ess-arc-d ess-vst-d ess-xls-d ess-lsp-l ess-sta-d ess-sta-l cc-vars
> cc-defs make-regexp ess-sp6-d ess-sp5-d ess-sp3-d ess-r-d ess-r-args
> assoc ess-s-l ess-inf ess-utils comint ring ess-mode noweb-mode ess
> ess-custom regexp-opt easymenu ess-compat ess-site ediff-hook vc-hooks
> lisp-float-type lisp-mode register page menu-bar rfn-eshadow timer
> select mouse jit-lock font-lock syntax facemenu font-core frame cham
> georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
> korean japanese hebrew greek romanian slovak czech european ethiopic
> indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
> abbrev minibuffer loaddefs button faces cus-face files text-properties
> overlay sha1 md5 base64 format env code-pages mule custom widget
> hashtable-print-readable backquote make-network-process dbusbind
> multi-tty emacs)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/python-mode/+bug/923575/+subscriptions
Hi Andreas,
I have updated my branch and redid the aforementioned steps using
both python 2.7 and python 3.
I confirm that this bug is fixed.
Thank you for your help and time.
On Thu, Feb 2, 2012 at 3:29 PM, Andreas Roehler shell-by- shebang' shell-by- import' argument] ) user is prompted to specify a reachable Python version." (interactive "P") (let ((erg (cond ((eq 4 (prefix- numeric- value arg)) (read-from- minibuffer "Python Shell\ local-default (if (not (string= "" py-shell- local-path) ) (expand-file-name py-shell- local-path) (message "Abort: `py-use- local-default' is set to `t' but `py-shell\ local-default- use'")) ) ((py-choose- shell-by- shebang) ) ((py-choose- shell-by- import) ) (t (default-value (quote py-shell-name)))))) (when (interactiv\ shell-by- shebang' shell-by- import' argument] ) user is prompted to specify a reachable Python version." (interactive "P") (let ((erg (cond ((eq 4 (prefix- numeric- value arg)) (read-from- minibuffer "Python Shell\ local-default (if (not (string= "" py-shell- local-path) ) (expand-file-name py-shell- local-path) (message "Abort: `py-use- local-default' is set to `t' but `py-shell\ local-default- use'")) ) ((py-choose- shell-by- shebang) ) ((py-choose- shell-by- import) ) (t (default-value (quote py-shell-name)))))) (when (interactiv\ %s)\nelse: \n import %s\n" docs.python. org/release/ 3.0.1/whatsnew/ 3.0.html) /bugs.launchpad .net/bugs/ 923575 import- or-reload bug with python3 pc-linux- gnu) pc-linux- gnu) x86_64- pc-linux- gnu' '--host= x86_64- pc-linux- gnu' '--mandir= /usr/share/ man' '--infodir= /usr/share/ info' '--datadir= /usr/share' '--sysconfdir=/etc' '--localstatedi r=/var/ lib' '--libdir= /usr/lib64' '--disable- dependency- tracking' '--program- suffix= -emacs- 24' '--infodir= /usr/share/ info/emacs- 24' '--enable- locallisppath= /etc/emacs: /usr/share/ emacs/site- lisp' '--with- crt-dir= /usr/lib/ gcc/x86_ 64-pc-linux- gnu/4.5. 3/../.. /../../ lib64' '--with- gameuser= games' '--without- compress- info' '--disable- maintainer- mode' '--without-hesiod' '--without- kerberos' '--without- kerberos5' '--with-gpm' '--with-dbus' '--without-gnutls' '--without-xml2' '--without-selinux' '--with-sound' '--without-x' 'build_ alias=x86_ 64-pc-linux- gnu' 'host_alias= x86_64- pc-linux- gnu' 'CFLAGS=-O2 -pipe -march=native -mtune=native' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed'' coding- system: nil multibyte- characters: t mode: t shadow- mode: t font-lock- mode: t n-mode: t -mode: t n-mode: t mark-mode: t 736yE.py site-start hides /usr/share/ emacs/site- lisp/site- start mode-autoloads indentation help-fns cc-cmds cc-engine ansi-color compile lock-mode ess-bugs-l print-readable backquote make-network- process dbusbind /bugs.launchpad .net/python- mode/+bug/ 923575/ +subscriptions
<email address hidden> wrote:
> Am 02.02.2012 04:35, schrieb Sara:
>> Hi Andreas,
>>
> Hi,
>
>> I checked out the current trunk last night using the following command:
>>
>> bzr branch lp:python-mode # This is the correct command, isn't it?
>
> yes, thanks.
>
>> My py-version is now 6.0.5
>
> correct. it should be higher the released version.
>
>>
>> So, redoing the steps reported earlier leads to a new error:
>>
>> or: Wrong number of arguments: (lambda (&optional arg) "Looks for an appropriate mode function.
>
> fixed, thanks
>
>>
>> This does the following:
>> - look for an interpreter with `py-choose-
>> - examine imports using `py-choose-
>> - if not successful, return default value of `py-shell-name'
>>
>> With \\[universal-
>> : " py-shell-name)) (py-use-
>> -local-path' is empty. Maybe call `py-toggle-
>> e-p) (message "%s" erg)) (setq py-shell-name erg) erg)), 3
>> Using `python-mode' version 6.0.5
>> You can run the command `py-version' with C-c C-v
>> or: Wrong number of arguments: (lambda (&optional arg) "Looks for an appropriate mode function.
>>
>> This does the following:
>> - look for an interpreter with `py-choose-
>> - examine imports using `py-choose-
>> - if not successful, return default value of `py-shell-name'
>>
>> With \\[universal-
>> : " py-shell-name)) (py-use-
>> -local-path' is empty. Maybe call `py-toggle-
>> e-p) (message "%s" erg)) (setq py-shell-name erg) erg)), 3
>>
>> The solution is to amend line 7685 of python-mode.el to:
>> (defun py-choose-shell (&rest arg)
>>
>> But this still results in the same error. I found that the solution is to amend line 5753 of python-mode.el to:
>> (format "import sys,imp\nif '%s' in sys.modules:\n imp.reload(
>> m m m))
>>
>> The reason is that has_key and reload has been removed in python3
>> (http://
>
> applied, thanks a lot!
>
> BTW don't hesitate to make a feature request, should you feel
> python-mode could deliver something useful for you.
>
> Andreas
>
>>
>> Doing the aforementioned changes fixes the bug on my PC.
>>
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https:/
>
> Title:
> py-execute-
>
> Status in An Emacs mode for editing Python code:
> In Progress
>
> Bug description:
> Hi,
>
> I think there is a bug when running C-c RET using a python3
> interpreter. The following are the steps to reproduce the error:
>
> 1. Create a new python file, e.g. xxx.py
>
> 2. C-u C-! and type 'python3'.
>
> 3. Type any valid python expression, e.g. print("hello world"). There
> is no need to import any modules.
>
> 4. C-c C-c (python3 correctly executes the file).
>
> 5. C-c RET and press RET again. The last RET is bound to the command comint-send-input. To be precise, C-c RET moves me to the *Python3* buffer, where the cursor is preceded by '... ... ... ...'. Typing anything e.g. print("hello") followed by RET would result in the following error:
> File "<stdin>", line 5
> print("helo")
> ^
> SyntaxError: invalid syntax
>
> 6. Results in the following error:
>
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> AttributeError: 'dict' object has no attribute 'has_key'
>
> The following are my systems details:
>
> Emacs version: GNU Emacs 24.0.92.2 (x86_64-
> python-mode.el version: 6.0.4
> Python3 interpreter version: Python 3.1.4
>
> The following is the output of M-x report-emacs-bug
>
> In GNU Emacs 24.0.92.2 (x86_64-
> of 2012-01-14 on localhost
> configured using `configure '--prefix=/usr' '--build=
>
> Important settings:
> value of $LC_ALL: nil
> value of $LC_COLLATE: nil
> value of $LC_CTYPE: nil
> value of $LC_MESSAGES: nil
> value of $LC_MONETARY: nil
> value of $LC_NUMERIC: nil
> value of $LC_TIME: nil
> value of $LANG: nil
> value of $XMODIFIERS: nil
> locale-
> default enable-
>
> Major mode: Comint
>
> Minor modes in effect:
> ido-everywhere: t
> shell-dirtrack-
> file-name-
> global-
> font-lock-mode: t
> auto-compositio
> auto-encryption
> auto-compressio
> line-number-mode: t
> transient-
>
> Recent input:
> ESC [ > 0 ; 1 1 5 ; 0 c x C-x 1 C-x C-f / t m p RET
> s a m p RET C-x C-s C-u C-c ! 3 RET C-x o C-c C-c C-x
> o C-c RET RET ESC x r e p o TAB r TAB RET
>
> Recent messages:
> ("/usr/bin/emacs")
> Loading ido...done
> OVERVIEW
> (No changes need to be saved)
> Python3
> Wrote /tmp/Python3164
> (No files need saving)
> Making completion list...
>
> Load-path shadows:
> /etc/emacs/
>
> Features:
> (shadow sort mail-extr message rfc822 mml mml-sec mm-decode mm-bodies
> mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
> mail-utils gmm-utils mailheader emacsbug help-mode view imenu org-indent
> org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo
> org-infojs org-html org-exp ob-exp org-exp-blocks org-info org-gnus
> org-docview org-bibtex bibtex org-bbdb tramp-cache tramp tramp-compat
> auth-source eieio gnus-util mm-util mail-prsvr password-cache
> format-spec tramp-loaddefs org-colview clojure-
> paredit-autoloads package tabulated-list zenburn-theme ido cus-start
> cus-load cal-iso org-agenda remember org-remember org-datetree org
> byte-opt warnings bytecomp byte-compile cconv macroexp ob-emacs-lisp
> ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys
> ob ob-eval org-pcomplete org-list org-faces org-compat org-entities
> org-macs time-date noutline outline easy-mmode cal-menu calendar
> cal-loaddefs python-mode rx advice advice-preload derived edmacro kmacro
> highlight-
> tool-bar cl site-gentoo ess-toolbar ess-mouse mouseme thingatpt
> browse-url ess-menu ess-swv ess-noweb noweb-font-
> essd-els ess-sas-d ess-sas-l ess-sas-a executable shell pcomplete
> ess-arc-d ess-vst-d ess-xls-d ess-lsp-l ess-sta-d ess-sta-l cc-vars
> cc-defs make-regexp ess-sp6-d ess-sp5-d ess-sp3-d ess-r-d ess-r-args
> assoc ess-s-l ess-inf ess-utils comint ring ess-mode noweb-mode ess
> ess-custom regexp-opt easymenu ess-compat ess-site ediff-hook vc-hooks
> lisp-float-type lisp-mode register page menu-bar rfn-eshadow timer
> select mouse jit-lock font-lock syntax facemenu font-core frame cham
> georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
> korean japanese hebrew greek romanian slovak czech european ethiopic
> indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
> abbrev minibuffer loaddefs button faces cus-face files text-properties
> overlay sha1 md5 base64 format env code-pages mule custom widget
> hashtable-
> multi-tty emacs)
>
> To manage notifications about this bug go to:
> https:/