davidacm / NVDA-IBMTTS-Driver

This project is aimed at developing and maintaining the NVDA IBMTTS driver. IBMTTS is a synthesizer similar to Eloquence. Please send your ideas and contributions here!
GNU General Public License v2.0
56 stars 23 forks source link

Unable to install IBMTTS 23.02.1 as an update of 22.07.x #85

Closed CyrilleB79 closed 1 year ago

CyrilleB79 commented 1 year ago

Note: This issue is a copy of the issue previously reported on NVDA add-on mailing list. As asked for better traceability, I open this GitHub issue in the repo.

Message

Hi David

I have been facing an issue updating IBMTTS. This message is just for your information or for whoever is facing the same issue because, personally, I have found a workaround.

My IBMTTS version was 22.07.x (do not remember exactly which one) and I was running NVDA 2022.4. First, I have updated NVDA to 2023.1beta1. Logically, IBMTTS as well as many other add-ons have become incompatible. Then I have manually downloaded IBMTTS 23.02.1 and tried to install it. I have had an error in install task, failing on the following import: from synthDrivers._settingsDB import appConfig I have not a copy of the error traceback anymore. Thus the add-on could not be updated.

I have disabled all add-ons except IBMTTS in add-on manager and tried to reinstall, but I was facing the same error.

Finally, I have restarted NVDA with add-on disabled and installed IBMTTS 23.02.1 successfully.

To try reproducing the error (to report it to you), I have installed (actually unzipped) IBMTTS 22.07.2 in a clean NVDA config. And tried to update to IBMTTS 23.02.1. The driver has been updated successfully. However on next restart, I have the following error in the log:

DEBUG - addonHandler.Addon.loadModule (09:44:52.907) - MainThread (11236):
Importing module installTasks from plugin Addon ('IBMTTS', running=True)
ERROR - addonHandler.Addon.completeRemove (09:44:52.910) - MainThread (11236):
task 'onUninstall' on addon 'IBMTTS' failed
Traceback (most recent call last):
  File "addonHandler\__init__.pyc", line 379, in completeRemove
  File "addonHandler\__init__.pyc", line 537, in runInstallTask
  File "addonHandler\__init__.pyc", line 517, in loadModule
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Cyrille\AppData\Local\Temp\nvda_ibmtts\addons\IBMTTS-v22.07.2\installTasks.py", line 6, in <module>
    from synthDrivers import _settingsDB
ImportError: cannot import name '_settingsDB' from 'synthDrivers' (C:\Program Files (x86)\NVDA\library.zip\synthDrivers\__init__.pyc)

As written before, this is just for your information, given that as a workaround, the add-on can be installed after restarting NVDA with add-ons disabled.

Cheers,

Cyrille

davidacm commented 1 year ago

Hi @CyrilleB79. Although is hard to replicate this issue now, I found another issue that is related with this one. I was not aware that submodules can't be imported from installTasks, when IBMTTS is installed the first time, installTasks won't run because the required modules are not loaded from the pending install.

In your case the imported module was present from the previous copy of IBMTTS, but not the new required appConfig module.

I removed the importing references to local submodules of the add-on in the installTasks file.

I'm closing this issue now, please feel free to comment it if you still get issues.