目录
(2)from 包名.模块名..... import 变量名或者函数名
(3)from 包名.模块名... import 变量名1,变量名2........
(1)在demo04的dmeo04_test01中导入demo03的demo03_test01()
当脚本运行的时候,可以正常执行,但是在别的地方运行,路径会发生变化,运行就可能出错
2.要想调用包下的所有模块,在包下的__init__.py文件中写:
2.在命令行中写:python3 setup.py build build
3.在命令行中写:pytohn3 setup.py sdist dist 把刚才的东西打成一个压缩包
cd.. (setup.py的路径) pyhhon3 setup.py install
一、包 package
文件夹,包含一个__init__.py文件的文件夹
二、包的导入
1.导入原则
凡是在导入时带点的,点的左边就是一个包
2.导入方式
| import....方式 | import 包名.模块名 | |
| form .....import ..方式 | from 包名.模块名..... import 变量名或者函数名 | from后import 引入的模块,必须明确的一个不能带点,否则会有语法错误 |
| from 包名.模块名... import 变量名1,变量名2........ | ||
| from 包名.模块名.... import 模块名 | ||
| from 包名.模块名 import * | 不能导入模块中的所有东西,只能导入__init__.py的东西 |
在demo01下的demo01_test02导入demo01_test01,并调用demo01_test01中的函数与变量

(1)import 包名.模块名
# import 包名.模块名
import python1224.demo01.demo01_test01
# 调用方式:模块名.变量名或函数
python1224.demo01.demo01_test01.test001()
python1224.demo01.demo01_test01.test01()
(2)from 包名.模块名..... import 变量名或者函数名
# from 包名.模块名.... import 变量名或函数名
from python1224.demo01.demo01_test01 import test01
test01()
from python1224.demo01.demo01_test01 import test001
test001()
(3)from 包名.模块名... import 变量名1,变量名2........
# from 包名.模块名..... import 变量名,函数名
from python1224.demo01.demo01_test01 import test01, test001
test01()
test001()
(4)from 包名.模块名.... import 模块名
# from 包名.模块名.... import 模块名
from python1224.demo01 import demo01_test01
# 调用方式:模块名.变量名或函数名
demo01_test01.test01()
demo01_test01.test001()
(5)from 包名.模块名 import *

- 要想调用demo02里面的所有模块,必须在demo02下的__init__.py中定义名字,在__init__.py中写入__all__

-
在根目录下的其他模块导入时就没有问题了


三、包的绝对导入和相对导入
(同级目录下的包与包之间的相互调用)
1.绝对导入
以根目录为起点
2.相对导入
| 一个点(.) | 表示当前目录 |
| 两个点(..) | 表示上一级目录 |

(1)在demo04的dmeo04_test01中导入demo03的demo03_test01()

(2)在根目录下的demo02_包.py下执行:
如果是相对导入,一个模块必须要有包结构,且只能导入它的顶层模块内部的模块,
如果一个模块被直接运行,则它自己的顶层模块,不存在层次结构,所以找不到其他相对路径

四、import 导入自定义包的子模块
(包下的模块相互调用)
1.在子包调用的时候不能直接用import,
当脚本运行的时候,可以正常执行,但是在别的地方运行,路径会发生变化,运行就可能出错

测试一下路径:

2.解决方法:
把test02()的当前目录:___________dmeo05添加到path里面
(1)pycharm本身
file---->settiings------>Project day02----->Project Structure----->找到demo05
------>右键:sources------>Apply------->ok

这样设置完之后,会发现:
- test01下面的红线没有了
- 在demo02_包中运行不出错了

(2)手动添加路径

五、import 包名
1.只导入到包名,不能调用包下的所有模块

2.要想调用包下的所有模块,在包下的__init__.py文件中写:
from . import test01,tets02


六、包的安装与发布

1.在包的统计目录下创建setup.py

2.在命令行中写:python3 setup.py build build

3.在命令行中写:pytohn3 setup.py sdist dist 把刚才的东西打成一个压缩包

4.把压缩包解压,找到setup.py的路径,复制下来

5.cd.. 进入上级目录
cd.. (setup.py的路径) pyhhon3 setup.py install

6.在任意一个模块中测试该包是否能被导入:


本文详细介绍了Python包的使用,包括包的导入原则和方式,如import与from...import的区别,绝对导入与相对导入的实践,以及如何解决包的路径问题。同时,讲解了如何在PyCharm中配置自定义包,以及包的安装与发布的步骤。






398

被折叠的 条评论
为什么被折叠?



