Skip to content

Commit 8471972

Browse files
Merge pull request CabbageDevelopment#2 from almarklein/qt_api_env
improve selecting qt module
2 parents 11e32e4 + defa7df commit 8471972

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

qasync/__init__.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,22 @@
3030

3131
logger = logging.getLogger(__name__)
3232

33-
try:
34-
QtModuleName = os.environ['QT_API']
35-
except KeyError:
36-
QtModule = None
37-
else:
33+
QtModule = None
34+
35+
# If QT_API env variable is given, use that or fail trying
36+
QtModuleName = os.getenv('QT_API', '').strip()
37+
if QtModuleName:
3838
logger.info('Forcing use of {} as Qt Implementation'.format(QtModuleName))
3939
QtModule = importlib.import_module(QtModuleName)
4040

41+
# If a Qt lib is already imported, use that
42+
if not QtModule:
43+
for QtModuleName in ('PyQt5', 'PySide2'):
44+
if QtModuleName in sys.modules:
45+
QtModule = sys.modules[QtModuleName]
46+
break
47+
48+
# Try importing qt libs
4149
if not QtModule:
4250
for QtModuleName in ('PyQt5', 'PySide2'):
4351
try:
@@ -46,8 +54,9 @@
4654
continue
4755
else:
4856
break
49-
else:
50-
raise ImportError('No Qt implementations found')
57+
58+
if not QtModule:
59+
raise ImportError('No Qt implementations found')
5160

5261
logger.info('Using Qt Implementation: {}'.format(QtModuleName))
5362

@@ -265,7 +274,7 @@ def __init__(self, app=None, set_running_loop=True):
265274

266275
assert self.__app is not None
267276
super().__init__()
268-
277+
269278
if set_running_loop:
270279
asyncio.events._set_running_loop(self)
271280

0 commit comments

Comments
 (0)