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

本文详细介绍了Python中的`import`机制,包括模块和包的概念、Python搜索模块的路径、绝对与相对导入的使用及优缺点,并提供了解决导入错误的调试思路。强调了正确理解和使用`import`对于大型项目的重要性,建议遵循明确的导入路径和合理项目结构。
摘要由CSDN通过智能技术生成
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']

可以看到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值