gpt4 book ai didi

python - 如何诊断 ImportError : DLL load failed when loading native Windows python modules in a virtualenv?

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:25 25 4
gpt4 key购买 nike

我正在使用 Python 3.x 和一个 virtualenv——不是 conda,只是一个普通的 virtualenv。我激活 venv 并运行 pip install opencv-python。然而,import cv2 给我一个 DLL not found 错误:

(tf) C:\>python
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\src\venv\tf\lib\site-packages\cv2\__init__.py", line 4, in <module>
from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.
>>>

这是一个 virtualenv 错误吗?我如何确定缺少哪个模块/dll?

最佳答案

一般解决“找不到模块”错误

尝试使用 Microsoft 的 Dependency Walker 或 lucasg 的 Dependencies在正在加载的模块上。请务必从 virtualenv 的命令提示符运行 Dependencies.exe,以便它获取修改后的 PATH。

导入行是 from .cv2 import *,所以被加载的模块与 __init__.py 在同一目录中(这是前导 ) 并命名为 cv2-SOMETHING.pyd(这就是 native Python 模块的样子)。将该文件加载到 Dependencies.exe 中,它将向您显示 Windows 需要但找不到的 DLL。

在这种情况下,DLL 是 Python3.dll。为什么不见了?因为a virtualenv bug这是固定的,但还没有进入发布 -- 已经一年多没有发布了。

特别是关于解决这个问题

github 问题建议修复:使用 venv。

或者,您可以手动将丢失的 python3.dll 复制到您的 virtualenv 中。您必须为您创建的每个 virtualenv 执行此操作。

copy "c:\Program Files\Python36\python3.dll" "c:\src\venv\tf\Scripts\"

关于python - 如何诊断 ImportError : DLL load failed when loading native Windows python modules in a virtualenv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48352027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com