模块(1)
模块分为三类:
1、自定义模块
2、内置标准模块(标准库)
3、开源模块
Python 包管理工具:
PIP
Windows 位置:
Users\xxx\AppData\Local\Programs\Python\Python36-32\Scripts
1,pip.exe
2,pip36.exe
3,pip3.exe
Ubuntu 开发者环境同样自带pip
alben@Python:~$ which pip3
/usr/bin/pip3
Windows python全局环境变量查看——
查看方法:
在python终端进行如下操作
Import sys
Print (sys.path)
得到的一个结果是列表,我们导入的模块必须在这个列表中某个位置!
测试自定义模块的import
我们在Pycharm的test目录下新建了一个包叫做abc,这个包下面创建 一个包叫做cba,在cba下创建hello.py文件
Hello.py的代码如下:
def hi(): print('hello,world')
在全局目录创建一个test_import.py文件,测试模块导入
import hello #hello是模块名 hello.hi() #hi是方法的名字
测试效果:
Traceback (most recent call last):
File "D:/Alben-PY/test_import.py", line 1, in <module>
import hello
ModuleNotFoundError: No module named 'hello'
返回了一个Traceback,报错了!
因为:
test_import.py在Alben-PY目录下
hello.py在Alben-PY\test\abc目录下
Python通过环境变量进行模块查找的时候,是不会进行目录递归的,这里就报错找不到模块'hello'
我们只需要更换导入的方法即可:
import sys from test.abc.cba import hello hello.hi()
这里之所以可以通过test.abc.cba的方式跨目录导入,是因为在pycharm中创建python包的时候,会动态创建py文件
'__init__.py'。当目录中存在这个文件的时候,python就认为这一个模块包!
所以如果跨目录导入模块,必须保证每一层目录下都有文件:'__init__.py'