python基础-------包

本文详细介绍了Python中包的概念、创建、导入、相对与绝对导入的区别,以及如何使用import导入自定义包的子模块。此外,还深入探讨了包的安装与发布流程,包括在项目中设置包结构、创建setup模块、利用distutils.core进行打包,以及在本地和远程环境中安装自定义包的方法。

 

 

目录

 

 

一、包

二、包的导入

1.import导入

2.from...import.....导入

3.__init__.py文件

三、包的相对导入和绝对导入

1.绝对导入:以跟目录(Python1224)开头

2.相对导入:用 ‘ · ’或‘  ··’的方式为其实位置

3.测试

四、import导入自定义包的子模块

五、包的单独导入

六、包的安装和发布

1.创建一个包

(1).在包中创建模块,写入所需的函数

2.在和包同级目录下,创建一个setup模块

3.在setup中导入内置模块 distutils.core  ------(动态参数,接收关键字)

4.在控制台Terminal中输入 python3 setup.py build

5.压缩成压缩包:在控制台输入python3 setup.py sdist

 6.解压压缩包:

7.安装:


一、包

1.定义:包就是一个文件夹,就是一个包含了__init__.py文件的文件夹

2.创建:在项目文件下New-----python Package(自带__init__.py文件)

               New----Directory(不带任何)

二、包的导入

导入原则:凡是在导入时带点的,点的左边就是一个包

1.import导入

 

2.from...import.....导入

1).from 包名.模块名 import 变量名

2).from 包名 .模块名  import 变量名1,变量名2...

3).from 包名 import  模块名

4).from  包名 import  模块1,模块2...

3.__init__.py文件

__init__可以为空,也可以存放包的初始化代码

不管是哪种方式,只要第一次导入包或者包的其他部分,都会依次执行包下的__init__.py文件

4.from 包 .模块  import  *

from  python1224.demo02  import  *------>只能导入--init--.py中的内容

*这种形式不能调用所有,demo02模块里的函数test02()不能调用

想要调用demo02中的所有,必须在demo02下的__init__中定义名字

用:__all__=['模块','函数','变量']来定义名字

from python1224.demo02 import *
demo02_test01.test02()  #会报错

 运行结果:

 

在__all__中定义的变量名都能被import *中调用

结果

 

三、包的相对导入和绝对导入

1.绝对导入:以跟目录(Python1224)开头

2.相对导入:用 ‘ · ’或‘  ··’的方式为其实位置

3.测试

绝对导入 当脚本文件运行时不会出错,可以找到路径

相对导入 当脚本文件运行时,会报错,运行时,在当前路径找不到调用的包,相对导入将当前目录当做顶层目录,

四、import导入自定义包的子模块

import 可以导入内置或者第三方模块,但绝对不可以调用自定义的子模块,在目录下找不到会报错

 

结果:

 

 

 解决办法:

1>手动添加附目录

import sys,os
print(sys.path)
abs_path=os.path.abspath(__file__) #获取当前目录下的绝对路径
path=os.path.dirname(abs_path)#获取附目录
sys.path.append(path)#手动添加目录
print(sys.path)#当前目录已经添加附目录

 2>在py charm中添加

File--->Settings--->当前项目名称--->Poject Structure--->顶层目录---->包(需要)--->sources---->Apply

 

五、包的单独导入

1.直接导入包会报错,因为包不会自动加载内存

解决办法:在调用包的__init__.py中添加导入所需的模块

结果:加入后在调用时,会自动执行__init__.py文件下的内容,所以不会报错

 

 

六、包的安装和发布

1.创建一个包

(1).在包中创建模块,写入所需的函数

2.在和包同级目录下,创建一个setup模块

3.在setup中导入内置模块 distutils.core  ------(动态参数,接收关键字)

4.在控制台Terminal中输入 python3 setup.py build

目录中自动生成build包,也可以在文件下找到

 

5.压缩成压缩包:在控制台输入python3 setup.py sdist

目录中会自动生成dist包

 

 6.解压压缩包:

在文件夹中先解压压缩包,获取当前路径

在控制台输入:cd  解压出来的文件所在的路径

7.安装:

在控制台输入 :Python3 setup.py install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值