python项目引用运行路径的问题

获得当前文件的绝对路径

Path(file).resolve() 是使用 pathlib 库获取当前 Python 脚本的绝对路径的方法。这里的 file 是一个内置变量,表示当前脚本的文件名。Path(file) 将这个文件名转换为一个 Path 对象,resolve() 方法将相对路径转换为绝对路径。

FILE = Path(__file__).resolve()

获取父文件目录

ROOT = FILE.parents[0]  # YOLOv5 root directory

获取当前文件相对于 ROOT 的相对路径

这行代码将 ROOT 变量设为当前工作目录 Path.cwd() 相对于 ROOT 的相对路径os.path.relpath() 函数用于计算从 start 目录到 path 的相对路径。在这个例子中,start 目录是当前工作目录(Path.cwd()),path 是 ROOT。

ROOT = Path(os.path.relpath(ROOT, Path.cwd()))  # relative

如何将run/tools/main文件的运行路径改为run/

os.path.abspath(file) 获取当前运行的脚本文件的绝对路径。
os.path.dirname() 函数获取包含该文件的目录。最后,os.chdir() 函数更改当前工作目录到包含脚本文件的目录。
os.getcwd() 获得相对路径

import os
import sys

# Change the working directory to 'run/'
os.chdir(os.path.dirname(os.path.abspath(__file__)))

# Add 'run/tools/' to the import path
sys.path.append(os.path.join(os.getcwd(), 'tools'))

# Import and run the main function from 'run/tools/main.py'
from main import main

if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/qq_44224801/article/details/130507442