2017-06-16 26 views
2

大画面是的ImportError用于与仆人CV2中的virtualenv

在Windows 7,与PIP安装在从virtualenv15的解压名为.tar.gz与python2.7.2解释器创建的python3.6.1的virtualenv走狗.1.0 无法导入cv2模块

语境/环境

在Windows 7(64位)与C:\Users\user1>C:\Python27\python.exe C:\VirtualenvTools\virtualenv-15.1.0\virtualenv.py --python=C:\VirtualenvTools\Python36\Python.exe C:\virtualenvs\virtualenv所有一行)我创建的virtualenv并设置其C:\ virtualenvs \ virtualenvname \脚本\ Python.exe文件作为Eclipse中PyDev项目的主要解释器。

进入与activate的virtualenv中,然后pip install lackey命令@的℃之后我也装马屁精:\ virtualenvs \ virtualenvname \脚本\目录没有任何列出的错误(安装工作)。

问题

当我输入的走狗,在我的PyDev项目from lackey import *,有一个从Eclipse的控制台ImportError

控制台的堆栈跟踪:
Traceback (most recent call last):
File "C:\Users\user1\workspace\sikulixframework0.1\testManager.py", line 4, in <module>
from lackey import *
File "C:\virtualenvs\virtualenvname\lib\site-packages\lackey\__init__.py", line 31, in <module>
from .RegionMatching import Pattern, Region, Match, Screen, ObserveEvent
File "C:\virtualenvs\virtualenvname\lib\site-packages\lackey\RegionMatching.py", line 17, in <module>
import cv2
File "C:\virtualenvs\virtualenvname\lib\site-packages\cv2\__init__.py", line 7, in <module>
from . import cv2
ImportError: DLL load failed: Le module spécifié est introuvable.

(Le模块spécifiéest introuvable。 =指定的模块找不到)

当使用相同的解释器(C:\ virtualenvs \ virtualenvname \脚本\ Python.exe)直接,如果我写from lackey import *我得到同样的堆栈跟踪

我的决心尝试

我想同样的事情(from lackey import *)虚拟环境之外,它的工作。就像在an answer to the stackoverflow's question 'Can't import cv2; “DLL load failed”'中建议的一样,我下载了Visual C++ 2015 redistributable package,但我的并发症没有任何改变。

+0

也许走狗在virtualenv中工作不好。像谷歌的应用程序引擎(pdb)? https://stackoverflow.com/questions/8694741/how-to-setup-pydevs-python-interpreter-in-eclipse-using-pip-within-a-virtualenv – Tun3BotYoda

回答

1

我说,在Windows PATH环境变量,路径到原来的Python3.6.1从路径\为\原有\ python36 \ python.exe的是,包含该python3的virtualenv中的创作C:\Users\user1>C:\Python27\python.exe C:\VirtualenvTools\virtualenv.py --python=C:\VirtualenvTools\Python36\Python.exe C:\virtualenvs\virtualenv命令。 dll文件并添加了相同的python3。dll文件在C:\ virtualenvs \ virtualenv \脚本目录下,它的工作!

摘要,如果你使用的virtualenv并出现一个ImportError(至少CV2)

  1. 确保可执行文件路径(其中包含python3.dll文件中python3.6.1在至少)由virtualenv引用(创建命令的--python=部分之后)位于“PATH”Windows环境变量中。
  2. 将其添加到python3.dll文件到\ Scripts \目录,其中virtualenv是。

goey项目git所有者(glitchassassin)的answer帮我解决了这个问题。他还指出,这个问题是由的virtualenv造成的:

貌似这其实也是virtualenv中an issue

上的virtualenv的问题,有些人发现了同样的解决方案:

[N] O需要从不受信任的随机互联网网站下载DLL文件,只需复制从C之一:/ Python3。 5 /(或安装Python 3.5的任何地方)放到%PATH%的任何目录中。

相关问题