diff --git a/anki/utils.py b/anki/utils.py index e91678563..2f6ba9e01 100644 --- a/anki/utils.py +++ b/anki/utils.py @@ -18,6 +18,7 @@ from hashlib import sha1 import platform import traceback import json +from contextlib import contextmanager from anki.lang import _, ngettext @@ -314,6 +315,13 @@ def namedtmp(name, rm=True): # Cmd invocation ############################################################################## +@contextmanager +def noBundledLibs(): + oldlpath = os.environ.pop("LD_LIBRARY_PATH", None) + yield + if oldlpath is not None: + os.environ["LD_LIBRARY_PATH"] = oldlpath + def call(argv, wait=True, **kwargs): "Execute a command. If WAIT, return exit code." # ensure we don't open a separate window for forking process on windows @@ -327,7 +335,8 @@ def call(argv, wait=True, **kwargs): si = None # run try: - o = subprocess.Popen(argv, startupinfo=si, **kwargs) + with noBundledLibs(): + o = subprocess.Popen(argv, startupinfo=si, **kwargs) except OSError: # command not found return -1 diff --git a/aqt/utils.py b/aqt/utils.py index 1e11568d3..0e62ad4c2 100644 --- a/aqt/utils.py +++ b/aqt/utils.py @@ -6,15 +6,7 @@ from aqt.qt import * import re, os, sys, urllib.request, urllib.parse, urllib.error, subprocess import aqt from anki.sound import stripSounds -from anki.utils import isWin, isMac, invalidFilename -from contextlib import contextmanager - -@contextmanager -def noBundledLibs(): - oldlpath = os.environ.pop("LD_LIBRARY_PATH", None) - yield - if oldlpath is not None: - os.environ["LD_LIBRARY_PATH"] = oldlpath +from anki.utils import isWin, isMac, invalidFilename, noBundledLibs def openHelp(section): link = aqt.appHelpSite