Python pupil_Apriltags : DLL 路径问题 "Could not find module"
Python pupil_Apriltags : Problem with DLL path "Could not find module"
你好,我在 python 中遇到 pupil_apriltags 的问题。
我已经搜索了超过 1 周并尝试了多种解决方案,但 none 的解决方案有效。
我的问题不在于库的导入,而是在我尝试创建 检测器 时。有一个 xxxx.dll 文件的引用(我认为)不起作用。
我的代码
很简单
from pupil_apriltags import Detector
import cv2
import numpy as np
at_detector = Detector(families='tag36h11',
nthreads=1,
quad_decimate=1.0,
quad_sigma=0.0,
refine_edges=1,
decode_sharpening=0.25,
debug=0)
我的错误
Traceback (most recent call last):
File "detection_apriltags.py", line 6, in <module>
at_detector = Detector()
File "C:\Users\Utilisateur\anaconda3\lib\site-packages\pupil_apriltags\bindings.py", line 285, in __init__
self.libc = ctypes.CDLL(str(hit))
File "C:\Users\Utilisateur\anaconda3\lib\ctypes\__init__.py", line 381, in __init__
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\Utilisateur\anaconda3\lib\site-
packages\pupil_apriltags\lib\apriltag.dll' (or one of its dependencies). Try using the full path
with constructor syntax.
我的配置
- Python 3.8.5
- Windows 10
所以我没有找到 pupils-Apriltags 的解决方案(在 Windows 上),但我发现 Aruco 直接在 Opencv 中(包:opencv-contrib-python, 在这一天).
arucoDict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_50)
arucoParams = cv2.aruco.DetectorParameters_create()
(corners, ids, rejected) = cv2.aruco.detectMarkers(image, arucoDict,parameters=arucoParams)
多亏了 Manuel Valenzuela 的评论,我才能够解决这个问题,并且我对 pupil-apriltags 回购进行了 PR;在此之后,问题应该不再是问题了。
https://github.com/pupil-labs/apriltags/pull/48
正如 Manuel 所说,这是 Python 3.8 及更高版本的 DLL 搜索中的一个问题。真正弄明白的人是@Mad Physicist:
你好,我在 python 中遇到 pupil_apriltags 的问题。 我已经搜索了超过 1 周并尝试了多种解决方案,但 none 的解决方案有效。
我的问题不在于库的导入,而是在我尝试创建 检测器 时。有一个 xxxx.dll 文件的引用(我认为)不起作用。
我的代码
很简单
from pupil_apriltags import Detector
import cv2
import numpy as np
at_detector = Detector(families='tag36h11',
nthreads=1,
quad_decimate=1.0,
quad_sigma=0.0,
refine_edges=1,
decode_sharpening=0.25,
debug=0)
我的错误
Traceback (most recent call last):
File "detection_apriltags.py", line 6, in <module>
at_detector = Detector()
File "C:\Users\Utilisateur\anaconda3\lib\site-packages\pupil_apriltags\bindings.py", line 285, in __init__
self.libc = ctypes.CDLL(str(hit))
File "C:\Users\Utilisateur\anaconda3\lib\ctypes\__init__.py", line 381, in __init__
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\Utilisateur\anaconda3\lib\site-
packages\pupil_apriltags\lib\apriltag.dll' (or one of its dependencies). Try using the full path
with constructor syntax.
我的配置
- Python 3.8.5
- Windows 10
所以我没有找到 pupils-Apriltags 的解决方案(在 Windows 上),但我发现 Aruco 直接在 Opencv 中(包:opencv-contrib-python, 在这一天).
arucoDict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_50)
arucoParams = cv2.aruco.DetectorParameters_create()
(corners, ids, rejected) = cv2.aruco.detectMarkers(image, arucoDict,parameters=arucoParams)
多亏了 Manuel Valenzuela 的评论,我才能够解决这个问题,并且我对 pupil-apriltags 回购进行了 PR;在此之后,问题应该不再是问题了。
https://github.com/pupil-labs/apriltags/pull/48
正如 Manuel 所说,这是 Python 3.8 及更高版本的 DLL 搜索中的一个问题。真正弄明白的人是@Mad Physicist: