zoukankan      html  css  js  c++  java
  • python 如何找到import的包

    Python import 时会首先寻找 sys.path 中列出的路径,通常是这样:


    >>> import sys
    >>> ' '.join(sys.path)

    /usr/lib/python2.7
    /usr/lib/python2.7/plat-x86_64-linux-gnu
    /usr/lib/python2.7/lib-tk
    /usr/lib/python2.7/lib-old
    /usr/lib/python2.7/lib-dynload
    /usr/local/lib/python2.7/dist-packages
    /usr/lib/python2.7/dist-packages
    那么 Python 是如何获取 sys.path 的呢?根据 Python 的文档,首先是当前目录,然后是 PYTHONPATH 环境变量,再之后是安装时设置的默认目录,由 site 模块控制。


    Python 在启动的时候会自动引用 site 模块,关于它是如何操作 sys.path 的,可以参考相关文档。

    当然,你也可以手动操作 sys.path,这同样会影响会话期间 Python 寻找包的行为。

    imp 模块
    Python 的 import 流程由 imp 模块 控制,因此我们可以完全自己手动控制库的 import 过程。

    使用 imp.find_module 来寻找模块:

    >>> import imp
    >>> imp.find_module('numpy')
    (None, '/usr/local/lib/python2.7/dist-packages/numpy', ('', '', 5))
    当然,我们可以使用 imp.load_source 直接 import 某个包文件并指定其包名。

    imp.load_source('module_name', 'module_full_path')

    print(module_name)
    python – dist-packages和site-packages有什么区别?
    sudo apt-get install 安装的package存放在 /usr/lib/python2.7/dist-packages目录中
    pip 或者 easy_install安装的package存放在/usr/local/lib/python2.7/dist-packages目录中
    手动从源代码安装的package存放在site-packages目录中

    ————————————————
    版权声明:本文为CSDN博主「cvml」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_15505637/article/details/80908751

  • 相关阅读:
    java反射并不是什么高深技术,面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象
    java反射意义
    vs2013中国集
    用户向导页面实现左右滑动的ImageSwitcher
    Java / Android H基于ttp多线程下载的实现
    成语接龙(dfs)
    python 弄github代码库列表
    leetcode先刷_Unique Paths II
    jquery于form正在使用submit问题,未解决
    Vs2012于Linux应用程序开发(2):图案
  • 原文地址:https://www.cnblogs.com/qingdou/p/11665894.html
Copyright © 2011-2022 走看看