summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--__init__.py2
-rw-r--r--required_modules.py36
2 files changed, 37 insertions, 1 deletions
diff --git a/__init__.py b/__init__.py
index 5d783d2..b360c57 100644
--- a/__init__.py
+++ b/__init__.py
@@ -22,7 +22,7 @@ from bpy.app.handlers import persistent
def set_blenxy_env(dummy): # "dummy" is a variable that is somehow
# passed to set_blenxy_env when called by
# bpy.app.handlers.load_post.append
-
+ from . import required_modules # install needed modules for bundled python (awful)
from . import basic_settings # settings blenxy has
from . import collada_superbmd_import # "custom" importer for SuperBMD collada files
from . import collada_superbmd_export # "custom" exporter for SuperBMD collada files
diff --git a/required_modules.py b/required_modules.py
new file mode 100644
index 0000000..98af424
--- /dev/null
+++ b/required_modules.py
@@ -0,0 +1,36 @@
+# I tried...
+
+# setup pip with ensurepip if it isn't included
+try:
+ import pip
+except:
+ import ensurepip
+ ensurepip.bootstrap()
+ print("First exit!")
+ exit(0)
+
+# upgrade pip (check the version installed by ensurepip)
+if (int(pip.__version__.split('.')[0]) > 9):
+ from pip._internal import main
+else:
+ from pip import main
+
+# 24.0 is the last version for python3.7
+import certifi
+if (int(pip.__version__.split('.')[0]) < 24):
+ main(["install", "--cert", str(certifi.where()), "--upgrade", "--force-reinstall", "pip", "-q"])
+ print("Second exit!")
+ exit(0)
+import pip
+print("pip %s is installed!" % (pip.__version__))
+
+# check if lxml is installed
+try:
+ import lxml
+except:
+ main(["install", "lxml"])
+ print("Third exit!")
+ exit(0)
+print("lxml %s is installed!" % (lxml.__version__))
+
+# no more exits please...