summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/install_api.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/scripts/install_api.py b/scripts/install_api.py
index 4b23ed99..aa12679f 100755
--- a/scripts/install_api.py
+++ b/scripts/install_api.py
@@ -3,8 +3,9 @@
# Thanks to @withzombies for letting us adapt his script
#
-import sys
+import importlib.util
import os
+import sys
from site import check_enableusersite
# Handle both normal environments and virtualenvs
@@ -29,8 +30,11 @@ if '-v' in sys.argv[1:]:
sys.exit(1)
try:
- import binaryninja
- import binaryninjaui #To better detect if migrating from a version without UI plugin support
+ binaryninja = importlib.util.find_spec('binaryninja')
+ assert binaryninja is not None
+ binaryninjaui = importlib.util.find_spec('binaryninjaui')
+ assert binaryninjaui is not None
+
if '-u' in sys.argv[1:]:
#Uninstall mode
userpth = os.path.join(getusersitepackages(), 'binaryninja.pth')
@@ -47,7 +51,9 @@ try:
sys.exit(0)
print("Binary Ninja API already in the path")
sys.exit(1)
-except ImportError:
+except ModuleNotFoundError:
+ pass
+except AssertionError:
pass
if '-u' in sys.argv[1:]: