• Python 如何 import 模块?


    平时写的每一个 py 文件都会 import 其他模块,但其原理我也是刚刚搞懂。

    在使用 Python 的 import 导入模块时,会首先从缓存中检索 Python 内建的模块,比如 os、sys 等。

    如果要使用的模块不是内建模块,之后会从指定的路径中依次查找。

    sys.path 可以列出这些路径,它包含三部分内容:

    1. 当前 py 文件的目录;如果是在交互式环境,是当前终端的目录。
    2. 操作系统中的当前环境变量 PYTHONPATH 保存的所有路径
    3. 当前虚拟环境的路径,用来查找 pip 或 conda 安装的包。
    ~ % pwd
    /Users/junsircoding
    
    ~ % ipython
    In [1]: import sys
    In [2]: sys.path
    Out[2]: 
    ['/Users/junsircoding/miniforge3/bin',
     '/Users/junsircoding/miniforge3/lib/python39.zip',
     '/Users/junsircoding/miniforge3/lib/python3.9',
     '/Users/junsircoding/miniforge3/lib/python3.9/lib-dynload',
     '',
     '/Users/junsircoding/miniforge3/lib/python3.9/site-packages']
    
    ~ % python
    >>> import sys
    >>> import pprint as pp
    >>> pp.pprint(sys.path)
    ['',
     '/Users/junsircoding/miniforge3/lib/python39.zip',
     '/Users/junsircoding/miniforge3/lib/python3.9',
     '/Users/junsircoding/miniforge3/lib/python3.9/lib-dynload',
     '/Users/junsircoding/miniforge3/lib/python3.9/site-packages']
    >>> exit()
    
    ~ % export PYTHONPATH=/test/python_path
    ~ % ipython
    In [1]: import sys
    In [2]: sys.path
    Out[2]: 
    ['/Users/junsircoding/miniforge3/bin',
     '/test/python_path',
     '/Users/junsircoding/miniforge3/lib/python39.zip',
     '/Users/junsircoding/miniforge3/lib/python3.9',
     '/Users/junsircoding/miniforge3/lib/python3.9/lib-dynload',
     '',
     '/Users/junsircoding/miniforge3/lib/python3.9/site-packages']
    
    ~ % python
    >>> import sys
    >>> import pprint as pp
    >>> pp.pprint(sys.path)
    ['',
     '/test/python_path',
     '/Users/junsircoding/miniforge3/lib/python39.zip',
     '/Users/junsircoding/miniforge3/lib/python3.9',
     '/Users/junsircoding/miniforge3/lib/python3.9/lib-dynload',
     '/Users/junsircoding/miniforge3/lib/python3.9/site-packages']
    >>> exit()
    
  • 相关阅读:
    20169215 缓冲区溢出漏洞实验
    20169215 2016-2017-2 实验二Nmap的使用与分析
    20169215 2016-2017-2 《网络攻防实践》/《网络攻击与防范》第八周学习总结
    Numpy Usage Introduction
    [Example of Sklearn]
    [Example of Sklearn]
    [Example of Sklearn]
    [Scikit-Learn]
    [Scikit-Learn]
    [Scikit-Learn]
  • 原文地址:https://www.cnblogs.com/junsircoding/p/16356359.html
Copyright © 2020-2023  润新知