Python模块搜索及模块安装

来源:互联网 发布:linux解压指定目录 编辑:程序博客网 时间:2024/05/08 01:56

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的四种文件类型

  • 源文件(.py)
  • 字节码文件(.pyc)
  • C扩展文件(Windows: .dll或.pyd文件 | Linux: .so文件)
  • 相同变量名的目录(用于包导入)

搜索路径

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

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

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

3. 标准库目录(比如说: C:\Python27\Lib)

4. .pth文件所在内容(一般放在Lib\site-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.eggimport 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:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg', ...,'C:\\Python27\\lib\\site-packages\\wx-3.0-msw']

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

>>> sys.path.append('d:\\test')>>> sys.path['', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg', 'C:\\Python27\\lib\\, '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环境了



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑文件夹删除不了怎么办 黑苹果内核错误怎么办 win10文件夹拒绝访问怎么办 苹果电脑没有系统了怎么办 黑苹果安装之后怎么办 笔记本cpu核显坏了怎么办 粘贴大量文件卡住怎么办 mx不能播放rv40怎么办 迷你世界联机卡怎么办 绝地求生被火瓶烧了怎么办 win8电脑太卡怎么办 win8关机没反应怎么办 arma3没子弹了怎么办 g350d柴油冻了怎么办 散热硅胶干了怎么办 电脑打不开pdf文件怎么办 文件变成快捷方式打不开怎么办 ai文件打不开了怎么办 电脑下载了病毒软件怎么办 打嗝停不下来怎么办 咳嗽停不下来怎么办 电动机停不下来怎么办 电脑所有程序都打不开怎么办 机顶盒画面卡顿怎么办 电脑画面卡顿怎么办 鞋舌头跑偏怎么办 球球大作战老卡怎么办 孩子被打却不敢还手怎么办? 自卫砍伤了人怎么办 系统还原节点黑屏了怎么办 我惹事了要被打怎么办 诛仙宠物太多怎么办 笔记本玩lolfps低怎么办 lol延迟有42怎么办 软件安装后黑屏怎么办 汽车脚垫翘边怎么办 晴季寿司会员怎么办 理财产品跑路了怎么办 宝宝足跟血异常怎么办 孩子足跟血异常怎么办 打印机显示用户干预怎么办