Update to Python 2.7.5 breaks several add-ons #3368

Closed
nvaccessAuto opened this Issue Jul 17, 2013 · 21 comments

2 participants

@nvaccessAuto

Reported by briang1 on 2013-07-17 06:52
Thus far I have had issues at boot up with Instant Translate, but I am given to understand Vocaliser driver also has issues. a log file from instant translate version from web site follows.
DEBUG - addonHandler.Addon.addToPackagePath (07:05:54):
Addon instantTranslate added to globalPlugins package path
ERROR - globalPluginHandler.listPlugins (07:05:54):
Error importing global plugin instantTranslate
Traceback (most recent call last):
File "globalPluginHandler.pyc", line 22, in listPlugins
File "C:\nvda extra\userConfig\addons\instantTranslate\globalPlugins\instantTranslate__init__.py", line 17, in
File "C:\nvda extra\userConfig\addons\instantTranslate\globalPlugins\instantTranslate\urllib2__init__.py", line 104, in
ImportError: No module named bisect
DEBUG - core.main (07:05:54):
starting core pump
DEBUG - core.CorePump.init (07:05:54):
Core pump starting
DEBUG - core.main (07:05:54):
Initializing watchdog
DEBUG - core.main (07:05:54):
initializing updateCheck
INFO - core.main (07:05:54):
NVDA initialized
DEBUG - core.main (07:05:54):
entering wx application main loop
IO - speech.speak (07:05:54):
Speaking ('en_GB'), u'Desktop list'

@nvaccessAuto

Comment 1 by briang1 on 2013-07-17 06:56
It has only started happening today, 17/07/13, though not updated nvda for a couple of days, so cannot tie it down any nearer, but noted that the only visible change is the python version in use.

@nvaccessAuto

Comment 2 by jteh on 2013-07-17 06:58
We'll explicitly include the bisect module for NVDA 2013.2, but consider it deprecated; it will be removed again in a future release.
Changes:
Changed title from "Suspect .5 version of Python can compromise add ons from approved list." to "Update to Python 2.7.5 breaks several add-ons"
Milestone changed from None to 2013.2

@nvaccessAuto

Comment 3 by beqa on 2013-07-17 07:01
hi.

bysect module is missing and it seems nvda nolonger requires it.

i think addon maintainers must update addons to include this module.
Changes:
Changed title from "Update to Python 2.7.5 breaks several add-ons" to "Suspect .5 version of Python can compromise add ons from approved list."

@nvaccessAuto

Comment 4 by beqa on 2013-07-17 07:02
jamie, i think it isn't necessary, maybe we can include it into our addons.

@nvaccessAuto

Comment 5 by jteh on 2013-07-17 07:08
You can (and you should), but this way, add-on developers will have a few more months to update their add-ons. Generally, if we remove something, we try to guarantee backwards compatibility for at least one release.

@nvaccessAuto

Comment 6 by ondrosik on 2013-07-17 07:10
Mostly addon writers should rewrite addons. I see only one issue here - if we upload new addon for python 2.7.5, it will probably no longer work with current stable release of nvda.

@nvaccessAuto

Comment 7 by beqa on 2013-07-17 07:14
no, we won't write anything.

we will just include bysect module and it will be compatible with all versions in which it worked earlier

@nvaccessAuto

Comment 8 by briang1 on 2013-07-17 07:16
I notice windows has lots of semi redundent bitsand pieces, but they simply don't delete them and their links. How much overhead in the size would it take to just leave it in but note to developers that its there for commpatability. There will always be users who use older versions, unfortunately.

@nvaccessAuto

Comment 9 by jteh on 2013-07-17 07:20
Changes:
Changed title from "Suspect .5 version of Python can compromise add ons from approved list." to "Update to Python 2.7.5 breaks several add-ons"

@nvaccessAuto

Comment 10 by ragb on 2013-07-17 09:23
Vocalizer problem is the same as instant translate, as we too include urllib2 (and also json, for the matter).

Re-inclusion of the byset module will hopefully fix the problem, so I'll wait for that.

@nvaccessAuto

Comment 11 by jteh on 2013-07-17 10:40
Try build: http://community.nvda-project.org/try/t3368/nvda_snapshot_try-t3368-9328,13c8992.exe
It'd be great if people experiencing problems with add-ons since the update to Python 2.7.5 can test this build and report if the problem is fixed.

@nvaccessAuto

Comment 12 by briang1 on 2013-07-17 15:56
Ok will try it in a moment.
However at the current state, ie the broken snaps, you can get a situation when trying to redownload an add on that it obviously won't work on install and breaks the gui in nvda.
IO - inputCore.InputManager.executeGesture (16:45:51):
Input: kb(desktop):upArrow
IO - speech.speak (16:45:51):
Speaking button Alt+i'
IO - inputCore.InputManager.executeGesture (16:45:52):
Input: kb(desktop):upArrow
IO - speech.speak (16:45:52):
Speaking add-on... button Alt+a'
IO - inputCore.InputManager.executeGesture (16:45:52):
Input: kb(desktop):upArrow
IO - speech.speak (16:45:52):
Speaking Add-ons list'
IO - speech.speak (16:45:52):
Speaking Usage Assistant - get brief help on interacting with the focused control; Status: running; Version: 1.0; Author: Joseph Lee joseph.lee22590@gmail.com 1 of 5'
IO - inputCore.InputManager.executeGesture (16:45:55):
Input: kb(desktop):downArrow
ERROR - unhandled exception (16:45:55):
Traceback (most recent call last):
File "gui\addonGui.pyc", line 190, in onListItemSelected
File "wx_core.pyc", line 14619, in getattr
PyDeadObjectError: The C++ part of the AddonsDialog object has been deleted, attribute access no longer allowed.
IO - speech.speak (16:45:55):
Speaking Translate - Translates given text using the Google Translate service.; Status: running; Version: 2.2beta2; Author: Alexy Sadovoy aka Lex lex@progger.su, ruslan ru2020slan@yandex.ru, beqa beqaprogger@gmail.com and other nvda contributors 2 of 5'
IO - speech.speak (16:45:56):
Speaking Translate - Translates given text using the Google Translate service. tool tip'
IO - inputCore.InputManager.executeGesture (16:45:56):
Input: kb(desktop):downArrow
ERROR - unhandled exception (16:45:56):
Traceback (most recent call last):
File "gui\addonGui.pyc", line 190, in onListItemSelected
File "wx_core.pyc", line 14619, in getattr
PyDeadObjectError: The C++ part of the AddonsDialog object has been deleted, attribute access no longer allowed.
IO - speech.speak (16:45:56):
Speaking Status: running; Version: 0.20120529.01; Author: NV Access Limited & other contributors 3 of 5'
IO - inputCore.InputManager.executeGesture (16:45:57):
Input: kb(desktop):downArrow
ERROR - unhandled exception (16:45:57):
Traceback (most recent call last):
File "gui\addonGui.pyc", line 190, in onListItemSelected
File "wx_core.pyc", line 14619, in getattr
PyDeadObjectError: The C++ part of the AddonsDialog object has been deleted, attribute access no longer allowed.
IO - speech.speak (16:45:57):
Speaking Monitor - allows easy access to system information.; Status: running; Version: 2.3; Author: Alex Hall mehgcap@gmail.com, Joseph Lee joseph.lee22590@gmail.com, beqa gozalishvili beqaprogger@gmail.com and other NVDA contributors 4 of 5'
IO - speech.speak (16:45:58):
Speaking Monitor - allows easy access to system information. tool tip'
IO - inputCore.InputManager.executeGesture (16:45:58):
Input: kb(desktop):downArrow
ERROR - unhandled exception (16:45:58):
Traceback (most recent call last):
File "gui\addonGui.pyc", line 190, in onListItemSelected
File "wx_core.pyc", line 14619, in getattr
PyDeadObjectError: The C++ part of the AddonsDialog object has been deleted, attribute access no longer allowed.
IO - speech.speak (16:45:58):
Speaking of SysTray elements; Status: running; Version: 1.3; Author: Rui Fontes rui.fontes@tiflotecnia.com, Rui Batista ruiandrebatista@gmail.com 5 of 5'
IO - inputCore.InputManager.executeGesture (16:46:12):
Input: kb(desktop):control+alt+i
INFO - core.main (16:46:13):
Exiting

@nvaccessAuto

Comment 13 by briang1 on 2013-07-17 16:20
The test snap worked OK on Instant translate in that there is no error. I did, initally have lots of errors when it first started, but I reran it and it cleared them. No idea what that was.
Th bove error mentioned I fancy after the failed open, was due to the add on system not prompting for a restart of nvda after the original error when it was loaded.

I have only tried this in a portable version thus far.

@nvaccessAuto

Comment 14 by jteh (in reply to comment 12) on 2013-07-18 03:18
Replying to briang1:

However at the current state, ie the broken snaps, you can get a situation when trying to redownload an add on that it obviously won't work on install and breaks the gui in nvda.

This should hopefully be fixed as part of #3351, which is incubating on next. It'd be great if you can verify this.

@nvaccessAuto

Comment 15 by James Teh <jamie@... on 2013-07-18 06:16
In [84f0763]:
```CommitTicketReference repository="" revision="84f07631ea27e95763b3148d00314f783f10a7f0"
Explicitly include the bisect module in binary builds.

It was implicitly included with Python 2.7.3, but isn't with 2.7.5. It needs to be included for now so we don't break add-ons with too little warning.
Fixes #3368.

Changes:
State: closed
@nvaccessAuto

Comment 16 by jteh on 2013-07-18 06:18
I also tested this with Vocalizer Expressive and it loads, though I can't get my license to work at the moment, so it'd be great if someone can confirm this.

@nvaccessAuto

Comment 17 by briang1 (in reply to comment 15) on 2013-07-18 06:29
Replying to James Teh :

In [84f0763]:

#!CommitTicketReference repository="" revision="84f07631ea27e95763b3148d00314f783f10a7f0"
Explicitly include the bisect module in binary builds.

It was implicitly included with Python 2.7.3, but isn't with 2.7.5. It needs to be included for now so we don't break add-ons with too little warning.
Fixes #3368.

Well when it turns up I'll have a look. I have just installeed the try snap on here and apart from still having the error when it runs to install, which is expected as its looking at the installed .ini file and folders, once installed it runs without errors on the instant translate.
So the missing file is part of Python then is it. I wonder why they altered things. One would think it would upset a lot of software using the language.

@nvaccessAuto

Comment 18 by briang1 on 2013-07-18 07:06
OK the next snap which is currently the latest stops the gui from giving errors and you can cursor and tab around OK and do the required reset.

I have to mention however that for some reason after all of that, closing Internet explorer with alt/f4 crashed it, which I know can happen but I'll watch it.
All I need now is the master snap for the fix for the add ons.

@nvaccessAuto

Comment 19 by jteh (in reply to comment 17) on 2013-07-18 07:24
Replying to briang1:

So the missing file is part of Python then is it. I wonder why they altered things. One would think it would upset a lot of software using the language.

It's not really their fault. A module we used in Python 2.7.3 depended on bisect, so it was implicitly included with NVDA. However, that module no longer depends on bisect in 2.7.5 (even though it's still available), so it isn't implicit any more. I don't know what changed or why, but they wouldn't expect that change to break something like this.

@nvaccessAuto

Comment 20 by briang1 on 2013-07-18 18:13
Oh, I see. Well the master branch is now working with the one add on I have that had the issue, and I guess next will at the next merge.
Thanks.

@nvaccessAuto

Comment 21 by ragb (in reply to comment 16) on 2013-07-19 09:32
Replying to jteh:

I also tested this with Vocalizer Expressive and it loads, though I can't get my license to work at the moment, so it'd be great if someone can confirm this.

Yes, it's fixed for us. Thanks :)

After next stable I'll remove the dependency on the deprecated module.

Rui Batista

@nvaccessAuto nvaccessAuto added the bug label Nov 10, 2015
@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2013.2 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment