系列文章目录
Tools\pather.py
添加路径工具
该功能主要是针对 Vscode coding 的小伙伴们准备的,启动虚拟环境后,就可以正常使用了
Python 版本:3.10.5
代码检查工具、风格:PEP 8、pylint
编辑器:Vscode
注释文案:这里特别提示一下,我偏向于无注释代码,所以,很多时候,变量名、方法名、文件名、类名都是注释,当然由于英文水平不怎么好,什么动词、名词、形容词啥的容易混淆,能理解就好了。
使用方式
Vscode 是一个神奇的编辑器,不知道为啥,他竟然不认识 Python 的项目,用过 Pycharm 的小伙伴大家应该知道,只要创建了一个 Python 的项目后,包里面的文件互相都是认识的,至少 Pycharm 知道你这个是一个项目中的文件,但是人家 Vscode 竟然不认识。
为了这个问题,我也研究了一些办法,最后选择了这个形式。该工具的使用方式比较简单,只需要启动虚拟环境,然后再单独执行即可完成包之间的共享,当然会出现怎么样的意外情况,我不太清楚哈,至少本地测试的时候没有啥问题。
设计思路
一般情况下,如果想让某一个 .py 文件知道另一个文件的存在,可能需要通过 os.path.append( ) 这个形式来告知,这样的话,就会添加多行无用的代码。
所以,在虚拟环境中,我找到了一个 .pth 的文件,让 Python 运行的时候,通过他来进行文件的认知,最后达到了我们所要的效果。
废话不多说,直接上代码
"""path 路径添加工具:
该功能主要是针对使用 Vscode 工具编写代码的小伙伴准备的,如果是 Pycharm 可以不用运行
该功能使用前,需要创建、打开虚拟环境
"""
import os
from vlog import Vlog
def _add_rootdir_into_virtualenvpth():
"""[summary] 添加 path 路径工具:
通过遍历的方式, 一次性将所有的文件夹、子文件夹写入虚拟环境中的 .pth 文件中
被写入文件路径约为 ./.env/Lib/_virtualenv.pth
如文件中内容过多的, 会引起运行卡顿, 所以该内容需要根据不同情况进行调整
"""
_log = Vlog().vlog
_virtualenv_file_name = "_virtualenv.pth"
root_path = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
text_content = ""
for root, dirs, files in os.walk(root_path):
if _virtualenv_file_name in files:
_virtualenv_dir = os.sep.join([root, _virtualenv_file_name])
elif "__pycache__" in root:
continue
elif ".git" in root:
continue
elif "logs" in root:
continue
elif ".env" in root:
continue
elif "frontend" in root:
continue
elif "reports" in root:
continue
text_content += (root + "\n")
with open(_virtualenv_dir, "w", encoding="utf-8") as open_virtualenv_dir:
_log.info("打开 pth 文件: <%s> 进行写入...", _virtualenv_file_name)
open_virtualenv_dir.write("import _virtualenv" + ("\n" * 3))
open_virtualenv_dir.write(text_content)
_log.info("写入 pth 文件: <%s> 完毕...", _virtualenv_file_name)
if __name__ == '__main__':
_add_rootdir_into_virtualenvpth()