好的,我编写了一个放在包中的Python脚本。目录树看起来大致是这样的:
├── foo
│ ├── __init__.py
│ ├── funcs
│ │ ├── __init__.py
│ │ └── stuff.py
│ ├── resources
│ │ └── haarcascade_frontalface_default.xml
│ └── scripts
│ ├── __init__.py
│ └── script.py
└── setup.py
在脚本文件中,我使用openCV的cv2来检测人脸,为此,
cv2.CascadeClassifier
需要XML文件的路径,该文件位于/resources下。由于这是一个脚本,我需要能够从任何地方运行它,因此相对路径到资源文件不能正常工作。如何在script.py内获取xml文件的绝对路径?您可以假设脚本和xml文件彼此相关,就像上面的示例一样。谢谢:)附带说明:如果此解决方案也适用于eggs,则会有奖励。非常感谢。
importlib.resources
或其后备库importlib_resources
。 - sinoroc