python加载自己手写模块(导入自定义模块)

python加载自己手写的自定义模块,两种方法

两种方法区别

方法一,将sub_py加入模块搜索路径,导入时需要导入脚本名

方法二,将sub_py直接当做包,导入时需要sub_py.xxx,需要添加__init__.py

方法一,把sub_py目录直接加入 Python 的模块搜索路径(sys.path)。

Python 导入模块时,会在sys.path列表中的所有目录里查找对应的模块

导入时,仅需导入脚本名即可!!!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import os
import sys
#将子目录sub_py追加到sys.path中
py_path=os.path.abspath(__file__)
py_dir=os.path.dirname(py_path)
sub_dir=os.path.join(py_dir,'sub_py')
sys.path.append(sub_dir)
#写成一行
#sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'sub_py'))

# 之后再进行正常导入
#0.安装pip依赖
from L0_pip_install import install_requirements
requirements_file=os.path.join(py_dir,'requirements.txt')
install_requirements(requirements_file)


from sub_py.L1_get_url import get_url

# 测试调用
if __name__ == "__main__":
    result = get_url()
    print("函数执行结果:", result)

方法二,需在sub_py子目录内添加__init__.py

sub_py被当作「包」,从sub_py中导入包!!!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# main.py 最顶部先添加路径配置
import sys
import os

# 获取当前main.py文件所在的目录路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 将该目录添加到Python的模块搜索路径中
sys.path.append(current_dir)

# 之后再进行正常导入
from sub_py.L1_get_url import get_url

# 测试调用
if __name__ == "__main__":
    result = get_url()
    print("函数执行结果:", result)