- Direct pip API
import pip._internal
pip._internal.main(["install", "numpy"])
or
from pip._internal.cli.main import main
main(["install", "numpy"])
2. runpy
import runpy
import sys
sys.argv = ["pip", "install", "numpy"]
runpy.run_module("pip", run_name="main")
3. importlib
import importlib
pip = importlib.import_module("pip._internal.cli.main")
pip.main(["install", "numpy"])
4. import
pip = import("pip._internal.cli.main", fromlist=["main"])
pip.main(["install", "numpy"])
5. Dynamic imports (to evade naive string matching)
import importlib
m = importlib.import_module("".join(["pip", "._internal.cli.main"]))
getattr(m, "main")(["install", "numpy"])
6. exec
exec("""
from pip._internal.cli.main import main
main(["install","numpy"])
""")
7. eval
eval("import('pip._internal.cli.main',fromlist=['main']).main(['install','numpy'])")
import pip._internal
pip._internal.main(["install", "numpy"])
or
from pip._internal.cli.main import main
main(["install", "numpy"])
2. runpy
import runpy
import sys
sys.argv = ["pip", "install", "numpy"]
runpy.run_module("pip", run_name="main")
3. importlib
import importlib
pip = importlib.import_module("pip._internal.cli.main")
pip.main(["install", "numpy"])
4. import
pip = import("pip._internal.cli.main", fromlist=["main"])
pip.main(["install", "numpy"])
5. Dynamic imports (to evade naive string matching)
import importlib
m = importlib.import_module("".join(["pip", "._internal.cli.main"]))
getattr(m, "main")(["install", "numpy"])
6. exec
exec("""
from pip._internal.cli.main import main
main(["install","numpy"])
""")
7. eval
eval("import('pip._internal.cli.main',fromlist=['main']).main(['install','numpy'])")