zoukankan      html  css  js  c++  java
  • 命令行启动模块的Python代码研究

    pyrasite的

    __requires__ = 'pyrasite==2.0'
    import re
    import sys
    from pkg_resources import load_entry_point
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(
            load_entry_point('pyrasite==2.0', 'console_scripts', 'pyrasite')()
        )
    

    mitmproxy的

    import re
    import sys
    
    from mitmproxy.tools.main import mitmproxy
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(mitmproxy())
    

    Ipython的

    import re
    import sys
    
    from IPython import start_ipython
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(start_ipython())
    

    pip3的

    import re
    import sys
    
    from pip._internal import main
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(main())
    

    virtualenv的

    import re
    import sys
    
    from virtualenv import main
    
    if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
        sys.exit(main())
    
    

    看完大概就能知道命令行模式启动的原理了。

  • 相关阅读:
    循序渐进学习栈和队列
    循序渐进学习数据结构之线性表
    2018 noip 备战日志
    2018 noip 考前临死挣扎
    二维前缀和与差分
    noip模板复习
    宽搜总结
    强联通总结
    二分图再次总结
    NOIP 2016 换教室(期望dp)
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11487290.html
Copyright © 2011-2022 走看看