欢迎来到山村网

Python模块搜索概念介绍及模块安装方法介绍

2019-03-02 13:54:23浏览:980 来源:山村网   
核心摘要:  这篇文章主要介绍了Python模块搜索概念介绍及模块安装方法介绍,本文详细讲解了import模块的运作原理,搜索路径的过程以及模块

  这篇文章主要介绍了Python模块搜索概念介绍及模块安装方法介绍,本文详细讲解了import模块的运作原理,搜索路径的过程以及模块安装的多种方法,需要的朋友可以参考下

  【import模块】

  和C中的#include不同,Python中的import语句并不是简单的把一个文件插入另外一个文件。

  导入其实是运行时的运算,程序第一次导入指定文件时,会执行以下步骤,

  1. 找到模块文件

  2. 编译成位码

  3. 执行模块中的代码来创建所定义的模块

  并生成.pyc字节码文件,这三个步骤只在程序执行时,模块第一次导入时会进行。之后导入相同的模块时,会跳过这三个步骤,而只提取内存中已加载的模块对象,速度要快的多。

  NOTE:

  1. Python把已加载的模块放在内置的sys.modules字典中,在import操作开始时会确认引用的模块是否已加载。如果想看哪些模块已加载,可以导入sys,打印sys.modules.keys()

  复制代码 代码如下:

  >>> sys.modules.keys()

  ['heapq', 'functools', 'pyreadline.console.ansi',...,'pyreadline.modes']

  2. 可以import的四种文件类型

  1.源文件(.py)

  2.字节码文件(.pyc)

  3.C扩展文件(Windows: .dll或.pyd文件 | Linux: .so文件)

  4.相同变量名的目录(用于包导入)

  【搜索路径】

  比如说:import math,不需要加路径和后缀名,系统会自动搜索路径,按照搜索先后顺序,列出模块搜索路径.

  1. 程序的主目录(程序当前运行的目录)

  2. PYTHONPATH目录(在环境变量里面配置与加到Path中一样)

  3. 标准库目录(比如说: C:Python27Lib)

  4. .pth文件所在内容(一般放在Libsite-packages目录下,如下:easy-install.pth)

  代码如下:

  import sys; sys.__plen = len(sys.path)

  ./setuptools-0.6c11-py2.7.egg

  ./py-1.4.26-py2.7.egg

  ./sphinx-1.3b1-py2.7.egg

  ./colorama-0.3.2-py2.7.egg

  ./babel-1.3-py2.7.egg

  ./snowballstemmer-1.2.0-py2.7.egg

  ./docutils-0.12-py2.7.egg

  ./pygments-2.0.1-py2.7.egg

  ./jinja2-2.7.3-py2.7.egg

  ./six-1.8.0-py2.7.egg

  ./pytz-2014.9-py2.7.egg

  ./markupsafe-0.23-py2.7.egg

  ./pyzmq-14.4.1-py2.7-win-amd64.egg

  ./tornado-4.0.2-py2.7-win-amd64.egg

  ./backports.ssl_match_hostname-3.4.0.2-py2.7.egg

  ./certifi-14.05.14-py2.7.egg

  ./egg-0.2.0-py2.7.egg

  ./chicken-0.1.0-py2.7.egg

  import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

  而所有这些路径可以通过sys.path来看到

   代码如下:

  >>> import sys

  >>> sys.path

  ['', 'C:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', ...,'C:Python27libsite-packageswx-3.0-msw']

  临时的工作路径加载,可以用

   代码如下:

  >>> sys.path.append('d:test')

  >>> sys.path

  ['', 'C:Python27libsite-packagessetuptools-0.6c11-py2.7.egg', 'C:Python27lib, 'd:test']

  >>> sys.path.remove('d:test')

  【模块安装】

  但上面的方法只是临时性的,一旦退出程序或当前交互环境,就失效。要想永久生效就必须让其加入到上述目录中

  Perl的强大在于CPAN,可喜的是,Python也开始有类似的技术及功能,比如说pip,可以用包括pip来安装模块。

  1. 自写模块,直接拷贝到上述任意目录

  2. 第三方模块,执行python setup.py install安装

  3. 用easy_install安装

  下载ez_setup.py文件

  执行: python ez_setup.py

  安装所要安装的模块: easy_install py

  4. 用pip安装

  先用easy_install pip命令来安装pip

  再用pip install Markdown来安装具体模块,假设模块名为: Markdown

  5. 用第三方模块管理库(比如说Canopy就可以管理科学计算模块,可惜很多需要收费)

  用此工具,就可以安装ipython环境了

(责任编辑:豆豆)
下一篇:

对于Python装饰器使用的一些建议

上一篇:

javascript中没有函数重载的概念实例讲解

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com