Ticket #469 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

installing orange on a machine with a different qt library previously installed

Reported by: anup.parikh@… Owned by: janez
Milestone: 2.6 Component: library
Severity: minor Keywords:
Cc: Blocking:
Blocked By:

Description

orange searches for the qtcore.dll file using the PATH variable. If a qtcore.dll file exists in the PATH before the orange path variable, orange trys to use that qtcore file. We had a case were a different version of qtcore was install by another software that also added its directory to the PATH variable. Orange kept crashing until we removed the other program.

Anup

Change History

comment:1 Changed 5 years ago by janez

  • Status changed from new to closed
  • Resolution set to fixed

Anup, is it MikTeX?

Orange cannot support both binary versions of Qt but only the one against which PyQt is linked (unless we had multiple PyQt's, that is).

The error you get (probably a missing function?) happens during import, but the message itself is by Windows and I cannot prevent it from appearing with a try-except clause in Python. I can catch an exception after the user clicks OK, and it would be nice to inform the user about what happened and how to fix it, but I can't: there is no console window and I have no Qt with which I could show a dialog, I don't know whether the user has PythonWin installed, so that I could use the Windows API..., so I cannot even output a message. I can only beep a little. :)

I now added a piece of code which runs before importing Qt, which sorts the PATH so that it puts any paths containing PyQt at the front and all paths with miktex at the back. That's all I can do and it will work if the machine has the correct Qt's dlls inside a PyQt directory or if the culprit is MikTex (or both). I don't see any smarter solution.

Note: See TracTickets for help on using tickets.