需求:
Python 引入根目录__init__.py文件中的变量、函数 (每天一个奇奇怪怪的需求)
项目文件结构:
- project_root
-
- __init__.py
-
- test.py
-
- modelA
- __init__.py
-
-
- ## 在test.py中调用 根目录__init__.py文件中的内容
-
-
解决过程:
1. 平时我们使用下面的方法, 调用modelA > __init__.py
- # test.py
- from modelA import *
2. 那我们调用根目录应该怎么调用?
有三种方法
1. 添加至PYTHONPTATH环境变量
2. 使用os sys 读取文件
3.借助项目中已有的lib库,添加pth文件(不推荐)
1. 添加至PYTHONPTA 环境变量
- 具体的操作就是,在环境变量配置文件中配置PYTHONPATH(比如,我们的项目在Linux上的位置为:/opt/my/bank_stm):
-
- 编辑环境变量配置文件:sudo vim ~/.bash_profile
- 在文件末尾追加如下两行,并保存:
- # 注意这里是Python项目根目录的上一级目录
- PYTHONPATH=/opt/my
- export PYTHONPATH
- 使配置立即生效:source ~/.bash_profile
-
-
- 通过上面的配置之后,我们就可以使用常规 from import 导入
2.使用os sys 读取文件
- import sys
- import os
-
- sys.path.append(os.path.abspath('../project_root')) # project_root 项目根路径
- from __init__ import a_method
-
- if __name__ == '__main__':
- a_method()
-
-
- # 通过sys os 加载项目下的文件,导入函数a_method
3.借助项目中已有的lib库,添加pth文件
- which python
- /home/usr_name/.virtualenvs/py3.6.9/bin/python
- cd /home/usr_name/.virtualenvs/py3.6.9/lib/python3.6/site-packages
- ls | grep pth
- # 会发现有几个pth文件,比如
- easy-install.pth
- matplotlib-3.2.1-py3.6-nspkg.pth
- protobuf-3.12.2-py3.6-nspkg.pth
- # 这时可以建立一个临时的pth文件,将根目录添加进去
- vi foo.pth
- yours_root_path # 写入根目录并保存,即可在sys.path中看到新添加的目录
参考来源:感谢他们的分享。
https://www.csdn.net/tags/MtTaEg5sMzc3MzItYmxvZwO0O0OO0O0O.html
Python 添加根目录的三种方法_Sesen_s的博客-CSDN博客_python 根目录