import sys是什么意思_深入理解Python中import机制

5aa474017ccfcbc85e686621c63d2013.png

大型项目中为了维护方便,通常使用模块化开发,模块化的过程中,就会涉及到各种包或者模块的相互导入,即使是对于有多个项目的Python开发者来说,import也会让人困惑!本文带你深入了解python中import的内在机制,从而避免import导入引发的异常。

概念

模块(module)

任何.py文件都可以称为模块

包(package)

可以将多个模块放入一个包中,就像电脑中的文件夹,但与文件夹的区别是,package包含__init__.py文件

Python import 的搜索路径

当我们执行python xx.py时,python是如何帮我们正确定位包所在的目录呢?其实系统是按照以下顺序来寻找的:

1.系统内置模块,比如os, sys模块2.入口文件所在的目录,比如main.py所在的目录3.Python环境变量,也就是我们平时pip install后的包所在的目录,如Anaconda下的site-packages目录

在Python中,如果遇到了import错误,我们可以通过以下命令查看搜索路径:

import sysprint(sys.path)

结果:

sys.path: ['/Users/root/Python/project','/Users/root/anaconda3/lib/python36.zip','/Users/root/anaconda3/lib/python3.6','/Users/root/anaconda3/lib/python3.6/lib-dynload','/Users/root/.local/lib/python3.6/site-packages','/Users/root/anaconda3/lib/python3.6/site-packages','/Users/root/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg','/Users/root/anaconda3/lib/python3.6/site-packages/aeosa','/Users/root/anaconda3/lib/python3.6/site-packages/mdr-0.0.1-py3.6-macosx-10.7-x86_64.egg']

可以看到

你可能感兴趣的:(import,sys是什么意思,import,torch,找不到模块,python,import,文件夹,python,import其他包,python根目录)