1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import os
- import runpy
- import importlib
- import __res
- cdef env_entry_point = 'Y_PYTHON_ENTRY_POINT'
- cdef extern from 'main.h':
- pass
- def find_pymain():
- py_main = __res.find('PY_MAIN')
- if isinstance(py_main, bytes):
- py_main = py_main.decode('utf8')
- if isinstance(py_main, unicode):
- return py_main
- return None
- def run_main():
- entry_point = os.environ.pop(env_entry_point, None)
- if entry_point is None:
- entry_point = find_pymain()
- if entry_point is None:
- raise RuntimeError('No entry point found')
- module_name, colon, func_name = entry_point.partition(':')
- if not colon:
- runpy._run_module_as_main(module_name, alter_argv=False)
- return
- if not module_name:
- module_name = 'library.python.runtime_py3.entry_points'
- module = importlib.import_module(module_name)
- func = getattr(module, func_name)
- func()
- run_main()
|