2022年 11月 6日

Python 引入根目录变量、函数

需求:

 Python 引入根目录__init__.py文件中的变量、函数 (每天一个奇奇怪怪的需求)

项目文件结构:

  1. project_root
  2. __init__.py
  3. test.py
  4. modelA
  5. __init__.py
  6. ## 在test.py中调用 根目录__init__.py文件中的内容

解决过程:

1. 平时我们使用下面的方法,  调用modelA > __init__.py

  1. # test.py
  2. from modelA import *

 2. 那我们调用根目录应该怎么调用?

有三种方法

1.  添加至PYTHONPTATH环境变量

2. 使用os sys 读取文件

3.借助项目中已有的lib库,添加pth文件(不推荐)

 1.  添加至PYTHONPTA 环境变量

  1. 具体的操作就是,在环境变量配置文件中配置PYTHONPATH(比如,我们的项目在Linux上的位置为:/opt/my/bank_stm):
  2. 编辑环境变量配置文件:sudo vim ~/.bash_profile
  3. 在文件末尾追加如下两行,并保存:
  4. # 注意这里是Python项目根目录的上一级目录
  5. PYTHONPATH=/opt/my
  6. export PYTHONPATH
  7. 使配置立即生效:source ~/.bash_profile
  8. 通过上面的配置之后,我们就可以使用常规 from import 导入

2.使用os sys 读取文件

  1. import sys
  2. import os
  3. sys.path.append(os.path.abspath('../project_root')) # project_root 项目根路径
  4. from __init__ import a_method
  5. if __name__ == '__main__':
  6. a_method()
  7. # 通过sys os 加载项目下的文件,导入函数a_method

3.借助项目中已有的lib库,添加pth文件

  1. which python
  2. /home/usr_name/.virtualenvs/py3.6.9/bin/python
  3. cd /home/usr_name/.virtualenvs/py3.6.9/lib/python3.6/site-packages
  4. ls | grep pth
  5. # 会发现有几个pth文件,比如
  6. easy-install.pth
  7. matplotlib-3.2.1-py3.6-nspkg.pth
  8. protobuf-3.12.2-py3.6-nspkg.pth
  9. # 这时可以建立一个临时的pth文件,将根目录添加进去
  10. vi foo.pth
  11. yours_root_path # 写入根目录并保存,即可在sys.path中看到新添加的目录


参考来源:感谢他们的分享。

https://www.csdn.net/tags/MtTaEg5sMzc3MzItYmxvZwO0O0OO0O0O.html

Python 添加根目录的三种方法_Sesen_s的博客-CSDN博客_python 根目录