2
votes

Comment installer scikit-image lorsque l'installation semble interrompue

Je suis un débutant en Python , venant de R , et je ne suis pas un programmeur, alors soyez patient si ma question est assez idiote ou triviale, mais je ne trouve pas de solution par moi-même.

J'utilise Python 3.7 dans Spyder, dans une machine Windows 10.

Je suis ce tutoriel et j'ai compris que j'avais besoin du module scikit-image .

J'ai appris que les paquets externes devraient être importés dans le même environnement de Spyder, donc je les installe à partir de Spyder:

from skimage import data

Et j'ai ceci:

Exigence déjà satisfaite: scikit-image dans c: \ users \ me \ appdata \ local \ programs \ python \ python37-32 \ lib \ site-packages (0.15.0) ...

Idem pour oreiller, networkx, PyWavelets, imageio, decorator, numpy (ceux je suppose que ce sont les modules de dépendances). Il semble que j'ai ce dont j'ai besoin.

J'essaye donc la première commande du tutoriel mentionné ci-dessus, à savoir:

!pip install scikit-image

Mais les résultats semblent ceci:

Traceback (dernier appel le plus récent):

Fichier "", ligne 1, provenant des données d'importation de skimage

Fichier "C: \ Users \ me \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ skimage__init __. Py", ligne 124, dans _raise_build_error (e)

Fichier "C: \ Users \ me \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ skimage__init __. Py", ligne 104, dans _raise_build_error% s "" "% (e, msg))

ImportError: impossible d'importer le nom 'geometry' de 'skimage._shared' (C: \ Users \ me \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ skimage_shared__init __. Py) Il semble que scikit-image n'a pas été construit correctement.

Mais je pense que c'est important:

Votre installation de scikit-image semble être interrompue. Essayez de réinstaller le package en suivant les instructions à l' adresse : https://scikit-image.org/docs/stable/install.html

Je suis donc allé sur ce lien, mais l'installation standard est ce que j'ai essayé de faire. Qu'est-ce que je fais mal?

Merci d'avance


EDIT1 : j'ai suivi la réponse, j'ai exécuté ceci:

!pip uninstall scikit-image --yes
Uninstalling scikit-image-0.15.0:
  Successfully uninstalled scikit-image-0.15.0

ensuite

from skimage import data

Et le résultat est que c'est already satisfied :

Exigence déjà satisfaite: scikit-image dans c: \ users \ me \ appdata \ local \ continuum \ anaconda3 \ lib \ site-packages (0.15.0)

Et même pour: matplotlib, networkx, oreiller, imageio, PyWavelets, numpy, cycler, kiwisolver, pyparsing, python-dateutil, decorator, six, setuptools


EDIT2:, fait dans l'invite anaconda, déjà certains paquets sont déjà satisfaits, j'ai donc redémarré Spyder et envoyé:

 ! pip install scikit-image

Donne une erreur différente:

Traceback (dernier appel le plus récent):

Fichier "", ligne 1, provenant des données d'importation de skimage

Fichier "C: \ Users \ me \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ site-packages \ skimage__init __. Py", ligne 127, dans from .util.dtype import (img_as_float32,

Fichier "C: \ Users \ me \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ site-packages \ skimage \ util__init __. Py", ligne 1, à partir de .dtype import (img_as_float32, img_as_float64, img_as_float,

Fichier "C: \ Users \ me \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ site-packages \ skimage \ util \ dtype.py", ligne 1, dans l'importation numpy comme np

Fichier "C: \ Users \ me \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ numpy__init __. Py", ligne 142, à partir de. importer le noyau

Fichier "C: \ Users \ me \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ site-packages \ numpy \ core__init __. Py", ligne 23, dans WinDLL (os.path.abspath (filename))

Fichier "C: \ Users \ me \ AppData \ Local \ Continuum \ anaconda3 \ lib \ ctypes__init __. Py", ligne 356, dans init self._handle = _dlopen (self._name, mode)

OSError: [WinError 193]% 1 ce n'est pas une application valide de Win32

(la dernière ligne est traduite par moi) que j'ai cherché, mais malgré un problème assez connu, je ne trouve pas de solution.


8 commentaires

Je vois que vous utilisez anaconda, essayez de désinstaller / installer le package depuis anaconda ou avec conda install


@ Sparky05, merci, dans l'invite anaconda en envoyant les mêmes commandes (sans!), J'ai désinstallé / installé le paquet avec succès, j'ai redémarré Spyder et j'ai eu une erreur différente, publiée ci-dessus.


Je ne sais pas si c'est la cause de votre erreur ou si cela devrait ressembler à ceci, je vois toujours un mélange de chemins anaconda et de chemins système. Vous pouvez essayer de créer un nouvel environnement dans anaconda et installer tous les paquets d'anaconda dans cet environnement.


C'était la bonne voie: tout le concept d'environnement n'était pas clair pour moi, avec ton commentaire, j'ai compris quelque chose de nouveau, merci. Si vous l'ajoutez comme réponse, je serai heureux de voter et de marquer comme correct.


J'ai créé une réponse avec des liens utiles vers la documentation des environnements python et la documentation des condos pour leur création (si vous n'avez pas l'interface graphique, ce qui est vraiment facile à utiliser). Si vous êtes nouveau dans Python et que vous êtes basé sur votre backround R , je vous suggère de jeter un œil aux notebooks jupyter, qui ont avec ses cellules interactives un sentiment plus proche de R


( Mainteneur de Spyder ici ) Votre problème m'a montré !pip/!conda installation de paquet avec !pip/!conda dans notre console conduit à des problèmes très déroutants et désagréables, j'ai donc décidé de le désactiver pour notre prochaine version. Notre console est conçue pour exécuter du code Python, pas pour exécuter des commandes système. Les utilisateurs ne devraient donc pas l'utiliser pour installer des packages via celui-ci, car pip et conda attendent un vrai terminal système, pas quelque chose qui émule un terminal mais qui ne l'est pas en réalité.


En outre, vous ne devez pas utiliser pip pour installer les packages fournis par Anaconda (comme scikit-image ) car la plupart des packages scientifiques pip et conda sont incompatibles (Pandas, Numpy, Matplotlib, etc.), ce qui signifie que l'utilisation de pip avec Anaconda pour les installer généralement corrompt Anaconda et vous devez le réinstaller. Ainsi, en interdisant l'installation de pip / conda, nous pouvons également montrer aux utilisateurs un message disant que l'utilisation de pip avec Anaconda est une très mauvaise idée.


@CarlosCordoba merci pour vos commentaires. Je tiens seulement à souligner que je ne suis pas un utilisateur expérimenté de Python / Spyder / Anaconda, peut-être qu'un utilisateur chevronné n'a pas ces problèmes et que la suppression d'une fonctionnalité pourrait leur entraîner d'autres problèmes. Peut-être que montrer un avertissement suffit (juste mon avis).


3 Réponses :


1
votes

Il semble que quelque chose s'est mal passé lors de l'installation. Vous devrez peut-être le réinstaller via:

pip uninstall scikit-image
pip install scikit-image

S'il y a des erreurs lors de la dernière étape (enregistrez la sortie), publiez-la ici. Cela vous donnera une idée de ce qui ne va pas.


2 commentaires

Merci, j'ai !pip uninstall scikit-image --yes alors !pip install scikit-image !pip uninstall scikit-image --yes !pip install scikit-image , et vous pouvez voir la mise à jour dans la question.


Cela fonctionne pour conda uninstall scikit-image conda install scikit-image aussi!



3
votes

Solution proposée: créer un nouvel environnement (virtuel)

À partir des résultats donnés, je suggérerais de créer un nouvel environnement pour encapsuler tous les packages de votre développement actuel.

Pour obtenir de l'aide concernant les environnements avec anaconda, vous pouvez regarder ici ou les créer dans l'interface graphique.

Vous trouverez dans la documentation des éléments rationnels pour l'utilisation des environnements virtuels en général. En bref: les environnements sont un moyen facile d'avoir des versions séparées des packages pour différents projets et vous séparez votre développement de l'installation système python, qui peut avoir différents packages.

Pourquoi un environnement virtuel dans votre cas?

Actuellement, cela ressemble à un mélange de packages de votre installation système, des chemins comme

"C: \ Users \ me \ AppData \ Local \ Programs \ Python ..."

et installations d'anaconda, avec des chemins de

"C: \ Users \ me \ AppData \ Local \ Continuum \ anaconda3 \ Lib ..."

probablement cela cause votre problème (et en causera probablement plus).


0 commentaires

1
votes
  1. pip désinstaller scikit-image
  2. conda installer scikit-image

il semble que conda installera d'autres paquets de dépendances. Et cela fonctionne pour moi.


0 commentaires