zoukankan      html  css  js  c++  java
  • Python学习笔记之疑问 7:自定义模块放在什么位置

    这个模块应该被放置在

    1.我们引用它的程序的同一个目录中,

    2.或者在sys.path所列目录之一,

    3.或者自建目录,但是要添加到sys.path

    那么sys.path又什么什么呢?

    简要的说一下库的搜索路径。当你试图导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在 sys.path 里面定义的所有目录。 

    >>>import sys
    >>>sys.path ['',

     '/usr/lib/python31.zip',
     
    '/usr/lib/python3.1',
     
    '/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
     
    '/usr/lib/python3.1/lib-dynload',
     
    '/usr/lib/python3.1/dist-packages',
     
    '/usr/local/lib/python3.1/dist-packages']
    >>> sys <module'sys' (built-in)>>>> sys.path.insert(0,'/home/mark/diveintopython3/examples') >>> sys.path ['/home/mark/diveintopython3/examples',
     
    '',
     
    '/usr/lib/python31.zip',
     
    '/usr/lib/python3.1',
     
    '/usr/lib/python3.1/plat-linux2@EXTRAMACHDEPPATH@',
     
    '/usr/lib/python3.1/lib-dynload',
     
    '/usr/lib/python3.1/dist-packages',
     
    '/usr/local/lib/python3.1/dist-packages']

    上面的代码列出了以下几个内容:

    1.其实sys是一个系统内置的模块,里面有一个属性 sys.path 。

    2.sys.path 是一个目录名称的列表,它构成了当前的搜索路径。

    3.不同的操作系统或python版本,它的sys.path是不一样的。

    4.Python 会从头到尾的浏览这些目录(按照这个顺序),寻找一个和你正要导入的模块名称匹配的 .py 文件,但是,不是所有的模块都是按照.py 文件来存储。有些,比如 sys 模块,属于内置模块(built-in modules), 他们事实上被置入到 Python 本身里面了。

    5.内置模块的特点是:因为它们不是用 Python 写的!( sys 模块是用 c 语言写的。)不能获得源代码。

    6.其实我们可以将其它目录在运行时添加到这个列表中,然后无论任何时候你想导入一个模块,Python 都会同样的去查找那个目录。只要 Python 在运行,都会一直有效。

    7.插入一个新的目录到 sys.path 列表的第一项,从而使其出现在 Python 搜索路径的开头。优先级最高。

  • 相关阅读:
    装饰器 如何理解Python装饰器?
    python装饰器详解
    window 10下安装jdk
    Linux中pam认证详解(上)
    VMware/KVM/OpenStack虚拟化之网络模式总结
    java问题排查命令
    今日面试问题
    Qwtplot3D Qt5.12.0 MinGW 编译运行
    20212022年寒假学习进度06
    Springboot笔记<10>常用注解总结
  • 原文地址:https://www.cnblogs.com/littleebeer/p/3352952.html
Copyright © 2011-2022 走看看