从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

30、初识python模块安装与导入

发布:蔺要红05-16分类: Python

模块:

1、内置标准模块(标准库)执行help('modules')查看所有python模块列表
2、第三方开源模块,可以通过pip install 模块名 在线安装
3、自定义模块
 

>>> import sys
>>> sys
<module 'sys' (built-in)>  # 模块    内置

>>> help('modules')

Please wait a moment while I gather a list of all available modules...

CDROM               aifc                http                setuptools
DLFCN               antigravity         idlelib             shelve
IN                  argparse            imaplib             shlex
TYPES               array               imghdr              shutil
__future__          ast                 imp                 signal
_ast                asynchat            importlib           site

#前面带 _ 的不用理会、
模块的调用:

import module
from module import XX   # from os import rmdir  或者多个 from os import rmdir,rename
from module.xx.xx import XX    # from django.core.handlers import wsgi
from module.xx.xx import XX as  rename  #者把复杂模块的名字起个别名 from django.core.handlers import wsgi  as linyaohong

模块一但被调用,相当于执行另外一个py文件里的代码

模块的导入路径:导入顺序从左往右,依次导入,
 
>>> import sys
>>> sys.path  #导入模块的路径
['', '/usr/local/python3/lib/python35.zip', '/usr/local/python3/lib/python3.5', '/usr/local/python3/lib/python3.5/plat-linux', '/usr/local/python3/lib/python3.5/lib-dynload', '/usr/local/python3/lib/python3.5/site-packages']
>>> sys.path.append('/tmp') #临时加入其它导入路径 了解即可
>>> sys.path
['', '/usr/local/python3/lib/python35.zip', '/usr/local/python3/lib/python3.5', '/usr/local/python3/lib/python3.5/plat-linux', '/usr/local/python3/lib/python3.5/lib-dynload', '/usr/local/python3/lib/python3.5/site-packages', '/tmp']
>>> del sys.path[-1]  #删除   了解即可
>>> sys.path
['', '/usr/local/python3/lib/python35.zip', '/usr/local/python3/lib/python3.5', '/usr/local/python3/lib/python3.5/plat-linux', '/usr/local/python3/lib/python3.5/lib-dynload', '/usr/local/python3/lib/python3.5/site-packages']

开源模块的使用
 
开源模块地址  https://pypi.org/

#下载
wget https://files.pythonhosted.org/packages/c4/22/167ec8e203b0f930582a82a1bfcf7faf9d14af3a0d6abc807dbb22ed52f8/PyTyrion-1.0.1.tar.gz
cd PyTyrion-1.0.1
python3 setup.py build  #编译安装
python3 setup.py install
[root@zabbix PyTyrion-1.0.1]# python3
Python 3.5.2 (default, May 11 2019, 11:00:44)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tyrion  #导入模块

方法二在线安装
 
国内安装源(豆瓣):    http://pypi.doubanio.com/simple/
国内安装源(阿里云): http://mirrors.aliyun.com/pypi/simple/

 
[root@zabbix PyTyrion-1.0.1]pip3 install PyTyrion #安装
[root@zabbix PyTyrion-1.0.1]pip3 uninstall PyTyrion #卸载
[root@zabbix PyTyrion-1.0.1]# pip3 install PyTyrion #安装
Collecting PyTyrion
  Downloading http://mirrors.aliyun.com/pypi/packages/c4/22/167ec8e203b0f930582a82a1bfcf7faf9d14af3a0d6abc807dbb22ed52f8/PyTyrion-1.0.1.tar.gz
Installing collected packages: PyTyrion
  Running setup.py install for PyTyrion ... done
Successfully installed PyTyrion-1.0.1

使用pip命令的时候如果系统中有python2和python3,而使用python3,需要进入python3的安装目录,使用pip3或者做软连接
升级python3里的pip3也是如此:pip3 install --upgrade pip 否则默认升级的是python里的pip命令






修改下载源为国内
 
[root@zabbix bin]# pip3 install -i  http://pypi.doubanio.com/simple/ paramiko --trusted-host pypi.doubanio.com
[root@zabbix bin]# python3 
Python 3.5.2 (default, May 11 2019, 11:00:44) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paramiko


包(Package)


执行 login.py




在python3中可以直接导入目录,但是在python2中不行,因为这样还不是一个包(Package)
把 目录 变成一个
 包(Package)   只需要在目录底下创建一个 __init__.py 空文件即可、这样python2也能导入


执行login.py正常导入同级目录下的模块:





跨模块绝对路径导入:

 
# -*- coding:utf-8 -*-
import sys,os
print(dir())
print(__file__)
print(os.path.abspath(__file__))  #获取绝对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(BASE_DIR)
sys.path.append(BASE_DIR)
from crm import settings  导入上一级目录crm里的settings
def login_admin(name):
    print(name,'登陆页面')



跨模块相对路径导入:必须满足如下两个条件:

1、文件夹中必须有 __init__.py ,该文件可以为空,但必须存在该文件
2、不能作为顶层模块来执行该文件中的py文件(不能作为主函数入口)

 
from . import linyao
from  ..test import linyaohong



 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站