import bpy from subprocess import run # get python's binary path (literally my saviour) py_bin = bpy.app.binary_path_python req_mods = ["lxml"] trusted_hosts = ["--trusted-host", "pypi.python.org", "--trusted-host", "files.pythonhosted.org", "--trusted-host", "pypi.org"] try: import pip import setuptools import lxml except: # hecking install pip (ensurepip) + required modules run([py_bin, "-m", "ensurepip"]) # update pip and setuptools to latest version run([py_bin, "-m", "pip", "install", "--upgrade", "--force-reinstall", "pip"] + trusted_hosts) run([py_bin, "-m", "pip", "install", "--upgrade", "setuptools"] + trusted_hosts) # install required modules run([py_bin, "-m", "pip", "install"] + req_mods + trusted_hosts) print("First exit!") exit(0) # print module's versions installed print("pip %s is installed!" % (pip.__version__)) print("setuptools %s is installed!" % (pip.__version__)) print("lxml %s is installed!" % (lxml.__version__))