2017-06-16 2 views
2

image Big estImportError pour CV2 avec un larbin dans virtualenv

Dans Windows 7, installé avec larbin pépin dans un virtualenv de python3.6.1 créé avec un interprète python2.7.2 d'un .tar.gz décompressé de virtualenv15 .1.0 ne peut pas importer le module cv2.

Contexte/Environnement

Dans Windows 7 (64 bits) avec C:\Users\user1>C:\Python27\python.exe C:\VirtualenvTools\virtualenv-15.1.0\virtualenv.py --python=C:\VirtualenvTools\Python36\Python.exe C:\virtualenvs\virtualenv (toute une ligne) créer un virtualenv et définir ses C: \ virtualenvs \ virtualenvname \ Scripts \ Python.exe fichier en tant qu'interprète principal pour un projet PyDev dans Eclipse.

J'ai également installé larbin après avoir entré le virtualenv avec activate puis la commande @pip install lackey les C: \ virtualenvs \ virtualenvname \ Scripts \ répertoire sans erreurs répertoriées (installation de travail).

Le problème

Quand j'importer avec from lackey import * dans larbin mon projet PyDev, il y a une ImportError de la console d'Eclipse.

de stackTrace de la console:
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 module spécifié est introuvable. = Le module spécifié est introuvable)

Lorsque vous utilisez le même interprète (C:. \ Virtualenvs \ virtualenvname \ Scripts \ Python.exe) directement, si j'écris from lackey import * je reçois le même stackTrace

Ma résolution essaie

J'ai essayé les mêmes choses (from lackey import *) en dehors d'un environnement virtuel et cela a fonctionné. Comme suggéré dans an answer to the stackoverflow's question 'Can't import cv2; “DLL load failed”', j'ai téléchargé le Visual C++ 2015 redistributable package mais rien de mes complications n'a changé.

+0

Peut-être que lackey ne fonctionne pas bien dans un virtualenv. Comme le moteur d'application de google (pdb)? https://stackoverflow.com/questions/8694741/how-to-setup-pydevs-python-interpreter-in-eclipse-using-pip-within-a-virtualenv – Tun3BotYoda

Répondre

1

I ajouté, dans la variable d'environnement PATH Windows, le chemin d'accès au Python3.6.1 d'origine du chemin \ à \ origine \ python36 \ python.exe dans la commande C:\Users\user1>C:\Python27\python.exe C:\VirtualenvTools\virtualenv.py --python=C:\VirtualenvTools\Python36\Python.exe C:\virtualenvs\virtualenv pour la création du virtualenv qui contenait que python3. dll fichier et ajouté le même python3.dll fichier dans le répertoire C: \ virtualenvs \ virtualenv \ Scripts et cela a fonctionné!

Résumé Si vous utilisez virtualenv et un ImportError se produit (pour au moins CV2)

  1. Assurez-vous que le chemin vers l'exécutable (qui contient le fichier python3.dll dans python3.6.1 à le moins) qui est référencé par virtualenv (après cette partie --python= de la commande de création) se trouve dans la variable d'environnement Windows "PATH".
  2. Ajoutez le même fichier python3.dll au répertoire \ Scripts \ où se trouve virtualenv.

La solution answer de git owner git owner (glitchassassin) m'a aidé à résoudre ce problème. Il déclare également que ce problème est causé par virtualenv:

On dirait que c'est aussi an issue dans virtualenv.

Sur la question de virtualenv, certaines personnes ont trouvé la même solution:

[N] o besoin de télécharger des fichiers DLL à partir de sites Internet aléatoire non sécurisés, il suffit de copier celle de c:/python3. 5/(ou partout où vous avez installé Python 3.5) dans n'importe quel répertoire de votre% PATH%.