需求:
?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.htmlhttps://www.csdn.net/tags/MtTaEg5sMzc3MzItYmxvZwO0O0OO0O0O.html
Python 添加根目录的三种方法_Sesen_s的博客-CSDN博客_python 根目录Python 添加根目录的三种方法1. 将"."添加至PYTHONPTAH环境变量 【推荐】在~/.zshrc中,export PYTHONPATH=${PYTHONPATH}:"."echo ${PYTHONPATH}import osprint(os.environ["PYTHONPATH"])2. sys.path.append或者insert,对访问到根目录的py文件,手动添加根目录import sys# 常用方式1sys.path.insert(0, '../') #https://blog.csdn.net/weixin_40546602/article/details/111579500?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-111579500-null-null.pc_agg_new_rank&utm_term=python+%E5%AF%BC%E5%85%A5%E6%A0%B9%E7%9B%AE%E5%BD%95&spm=1000.2123.3001.4430
|