Python:在多台机器上使用相对路径

问题描述

我有一台私人电脑,我通常用它来学习 Python。 现在我出差了,我把我的项目从 github 下载到我的工作电脑上。

结构是:

  1. root\
  2. root\myScript.py
  3. root\images\opencv-logo.png

当我执行我的脚本以在我的私人 PC 上显示图片时,它工作得很好。 当我在工作 PC 上执行完全相同的脚本时,openCV 找不到该文件

这是我的代码

import cv2

template = cv2.imread("images\\opencv-logo.png")
cv2.imshow("Template",template)
cv2.waitKey(0)

我不明白为什么 python 不从它的执行中获取相对路径。 如果可以,它将适用于世界上的每台机器...... 这是否与虚拟环境或类似的东西有关?

错误信息:

cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wvn_it83\opencv\modules\highgui\src\window.cpp:376:错误:(-215:断言失败)函数 'cv::imshow'

中的 size.width>0 && size.height>0

这显然意味着它没有找到图片 - 这与 myScript.py 执行位置的相对路径的错误使用有关。

解决方法

您可以使用 pathlib 模块来处理路径。 例如 -

heroku scale worker=0