python导包
在python导包中碰到了相对路径和绝对路径的问题,本文主要根据这两个方面就python导包问题进行讲解。
本文目录:
- python导包三种方法
- python解释器加载包的路径
参考:
暂无。
python导包三种方法
三种导包方法及引用方法如下:
# 假设文件解释如下,我们在my_main.py文件中要加载tools.py中的print1()方法
root
| - my_main.py
| - www
| - ymz
| - tools.py
| - __init__.py
'''
my_main.py
'''
# method 1
import www.ymz.tools
www.ymz.tools.print1()
# method 2 -- recommanded √
import www.ymz.tools as t
t.print1()
# method 3
from www.ymz.tools import *
print1()
# method3_2
from www.ymz.tools import print1()
print1()
python解释器加载包的路径
python解释器会根据环境变量中的路径和sys.path中的路径找包。但是不同IDE的sys.path文件又不同,所以我们这里使用往sys.path添加绝对路径的方法来找包。
# 输出python解释器加载包的路径,这个路径是python解释器预先加载的路径,不同IDE输出的sys.path可能不同
import sys
print(sys.path)
# 添加该文件所在的绝对路径
import sys
import os
sys.path.append(os.path.dirname(__file__)) # 该方法会把当前文件的父级绝对路径加入到sys.path中
我们使用上面的方法将当前文件的父级绝对路径加入到sys.path中。需要注意的是(如果在后续代码中我们并未修改sys.path):在每一次python脚本运行的时候,相对路径只会针对于运行的第一个文件。