9
votes

Python3.4 Erreur - Impossible d'activer la pile exécutable comme objet partagé nécessite: argument invalide

J'ai essayé d'installer OpenCV dans une bash sous Windows (sous-système Windows Subsystème pour Linux, WSL) et Cela se révèle très difficile.

Je pense que je suis très proche, mais en entrant python, importer cv2 code> donne l'erreur suivante: p>

execstack -c /usr/local/lib/*opencv*.so*


1 commentaires

Sur Execstack: Vous devez l'exécuter en tant que root car il est à l'intérieur SBIN. Cela n'aide pas cependant avec la question de l'OPENCV.


4 Réponses :


2
votes

Il y a beaucoup de choses qui ne fonctionnent tout simplement pas pour le moment, car il existe des syscalls non immentés (WSL n'ayant qu'une couverture partielle, seulement environ 70% des systèmes de SysCalls sont implémentés, certains d'entre eux seulement) ou une prise manquante Modes et options (WSL ne prend pas encore en charge les sockets Datagrammes UNIX, bien qu'il soit disponible dans la prochaine version d'initié).

Si vous allez chez GitHub (Bashonwindows) et postez une strace ou recherchez votre problème et trouvez une copie de cela, c'est le meilleur moyen d'obtenir une réponse. L'équipe Microsoft travaillant sur ce projet veut beaucoup de commentaires et de bugsting.

Pour être clair, je dis que vous êtes à 100% dans quelque chose qui n'est pas encore mis en œuvre. Cependant, il pourrait y avoir un moyen, si vous regardez le code Sourcecode pour votre fichier .so pour désactiver la partie du code qui utilise que SysCall (puisque Python est crossplateform et que tous les systèmes SysCalls de Linux sont pris en charge sur tous les systèmes d'exploitation * NIX).


2 commentaires

J'avais exactement le même problème, écrivez-vous le problème sur Bashonwindows?


@Ramontitiveros Essayez de chercher du problème, mais oui si vous ne trouvez pas quelqu'un d'autre le dire, essayez de poster sur la page GITHUB avec une strace.



1
votes

J'ai aussi eu le même problème mais j'ai pu le réparer en le réinstallant simplement

$ sudo apt-get install Execstack

et le commentaire mentionné ci-dessus dans Windows 10 Build 14393.479


0 commentaires

28
votes

J'ai résolu ce problème à la suite de ce problème: Tatsuya-y.haTenaBog.com

J'utilise Windows Bash et installez OpenCV par CONDA INSTALL -C MENPO OPENCV3 = 3.1.0 CODE> alors j'ai eu ceci (python 2.7) >>> Import CV2 Traceback (appel le plus récent): Fichier "", ligne 1, dans ImporterRor: libopencv_ccalib.so.3.1: impossible d'activer la pile exécutable comme objet partagé nécessite: argument non valide code> p>

i résolvez-le par exécutant p>

sudo execstack -c /usr/local/lib/libopencv_*


3 commentaires

Travaillé parfaitement pour moi sur OpenCV 3.2 pour C / C ++. N'oubliez pas que les bibliothèques OpenCV sont installées sur / usr / local / lib si vous suivez les instructions d'installation en ligne.


@Seed Votre commentaire doit être édité dans la réponse pour élargir la solution aux utilisateurs qui installent via un autre package Python à part Anaconda.


Merci pour la solution; Pour tous ceux qui tentent de le faire courir dans un environnement anaconda particulier: vos fichiers libérations libres peuvent être dans votre environnement Sudo Execstack -C ~ / anaconda3 / env. / {Nom_folidien} / lib / libopencv _ *



-1
votes

Vous pouvez utiliser Execstack pour installer OpenCV et même importer la lib. Pourtant, pour faire une capture vidéo, comme dans CV2.Videocapture (0), bash pour Windows ne fonctionnera pas. Vous devez avoir une distribution complète installée.


0 commentaires