一、模块分类:
1.标准模块,内置
2.第三方模块,pip install xxx
3.自定义模块,一个py文件就是一个模块
二、导入自定义模块
1.创建一个py文件,写入定义函数,生成moudle模块

name = "wang"
print("hello",name)
def greet(q):
print("hi,",q)
2.在新的文件里调用自定义模块,import moudle

import moudle #导入自定义模块
moudle.greet("jean") #调用自定义模块的函数
3.查看效果

问题:如果在上级目录里执行,为什么会出现No module named ‘moudle’?
(venv) Mac-3:pythonProject10 wang$ ls
main.py moudle.py use_moule.py venv
(venv) Mac-3:pythonProject10 wang$
(venv) Mac-3:pythonProject10 wang$ cd ..
(venv) Mac-3:PycharmProjects wang$
(venv) Mac-3:PycharmProjects wang$
(venv) Mac-3:PycharmProjects wang$ python3
Python 3.8.2 (default, Aug 25 2020, 09:23:57)
[Clang 12.0.0 (clang-1200.0.32.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>> import moudle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'moudle'
>>>
当前查找的目录里并不包含自定义模块的文件
>>> import sys
>>> print(sys.path)
['', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python38.zip', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/lib-dynload', '/Users/wang/PycharmProjects/pythonProject10/venv/lib/python3.8/site-packages']
>>> ^D
(venv) Mac-3:PycharmProjects wang$ ls
pythonProject pythonProject10 pythonProject12 pythonProject3 pythonProject5 pythonProject7 pythonProject9
pythonProject1 pythonProject11 pythonProject2 pythonProject4 pythonProject6 pythonProject8
将自定义模块移动到site-packages目录下,保证在任何路径下可以调用
(venv) Mac-3:pythonProject10 wang$ ls
main.py moudle.py use_moule.py venv
(venv) Mac-3:pythonProject10 wang$ mv moudle.py /Users/wang/PycharmProjects/pythonProject10/venv/lib/python3.8/site-packages
(venv) Mac-3:pythonProject10 wang$
(venv) Mac-3:pythonProject10 wang$ cd /Users/wang/PycharmProjects/pythonProject10/venv/lib/python3.8/site-packages
(venv) Mac-3:site-packages wang$ ls
_distutils_hack easy_install.py pip pkg_resources setuptools-50.3.1.dist-info
distutils-precedence.pth moudle.py pip-20.2.3.dist-info setuptools
(venv) Mac-3:site-packages wang$ cd ../../
(venv) Mac-3:lib wang$ python3
Python 3.8.2 (default, Aug 25 2020, 09:23:57)
[Clang 12.0.0 (clang-1200.0.32.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import moudle
hello wang
0 Comments