Python高级编程——1.包(lib)和模块(module)

在Python中,存在包和模块两个常见概念。

模块:编写Python代码的py文件

包:用来分门别类存放模块代码的文件夹,【一般存在一个__init__.py文件】

一、模块的几种导入方式:

__init__.py文件:

__all__变量的使用:

__init__.py文件中导入其他模块文件,推荐使用

from . import xxx

可以使用别名来简化导入的模块名称【as的使用】。


1.创建一个项目,一个文件夹作为包Mypakage,两个.py文件,t1.py和t2.py,作为两个模块,为了与普通文件夹区分,需要在Mypakage文件夹下增加一个__init__.py文件,文件内变量声明方式:__all__=["t1","t2"]或者直接 from  .  import  t1       from  .  import t2,这里的“.”表示当前目录下。

在t1.py文件中,写入一个函数   t1 ()

def t1():
    print("这是mypakage包下的t1模块下的t1方法")

t2.py文件中,写入一个函数  t2( )

def  t2():
    print("这是mypakage的t2模块下的t2方法")

__init__.py文件:

# __all__=["t1","t2"]
from . import t1
from . import t2

2.进入命令行,切入至Mypakage文件夹目录下,进入python

①利用import  包路径名称导入,包路径.模块名导入 即:import  xxx.** ,引用时**.模块名.

Microsoft Windows [版本 10.0.15063]
(c) 2017 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd D:\Project\projects
D:\Project\projects>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Mypakage
>>> Mypakage.t1.t1()
这是mypakage包下的t1模块下的t1方法
>>>

②利用from包路径及包名   import  模块名            即xxx.xx.模块名,引用时直接用模块名

Microsoft Windows [版本 10.0.15063]
(c) 2017 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd D:\Project\projects
D:\Project\projects>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from Mypakage import t1
>>> t1.t1()
这是mypakage包下的t1模块下的t1方法

③利用import  包路径及包名  import *  导入某个包下的所有模块

Microsoft Windows [版本 10.0.15063]
(c) 2017 Microsoft Corporation。保留所有权利。
C:\Users\admin>d:
D:\>cd D:\Project\projects
D:\Project\projects>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Mypakage.t1
>>> t1.t1()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 't1' is not defined
>>> from  Mypakage  import  *
>>> t1.t1()
这是mypakage包下的t1模块下的t1方法

>>> t2.t2()
这是mypakage包下的t2模块下的t2方法




发布模块:

在文件的主目录创建setup.py文件,编辑如下:

from distutils.core import setup

setup(name=”ljh”,version=”1.0”,description=”描述”,author=”作者”,author_email=”作者邮箱”,py_modules=[“xx.xx.xx.py”,”xx.xx.xxx.py”])

如下图所示:

执行构建命令:

python setup.py build

执行打包命令:

python setup.py sdist

之后项目中结构如下:

执行安装命令:

python setup.py install

就会将我们打包后的压缩包安装到Python对应的第三方模块下:

python36\Lib\site-packages

我们在代码中就可以导入使用这个模块了。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值