Je viens d'installer Python 3.6.1 pour MacOS X
Lorsque j'essaie d'exécuter la console (ou d'exécuter quoi que ce soit avec Python3), cette erreur est générée:
AttributeError: module 'enum' has no attribute 'IntFlag'
$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Failed to import the site module
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 544, in <module>
main()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 530, in main
known_paths = addusersitepackages(known_paths)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 282, in addusersitepackages
user_site = getusersitepackages()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 258, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 248, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 601, in get_config_var
return get_config_vars().get(name)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 580, in get_config_vars
import _osx_support
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", line 4, in <module>
import re
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
La classe IntFlag existe dans enum.py. Alors, pourquoi est-ce que AttributeError est jeté?
python
python-3.x
enums
python-3.6
attributeerror
BryanWheelock
la source
la source
enum.py
dans votre répertoire de travail, par hasard?enum.py
dans votre répertoire de travail-I
option d'ignorer les packages de site et la variable d'environnement et / ou avec-v
pour voir les messages détaillés sur les importationsRéponses:
C'est parce que vous
enum
n'êtes pas leenum
module de bibliothèque standard . Vous avez probablementenum34
installé le package .Une façon de vérifier si tel est le cas est d'inspecter la propriété
enum.__file__
Depuis python 3.6, la bibliothèque enum34 n'est plus compatible avec la bibliothèque standard. La bibliothèque est également inutile, vous pouvez donc simplement la désinstaller.
Si vous avez besoin que le code s'exécute sur les versions python à la fois <= 3.4 et> 3.4, vous pouvez essayer d'avoir
enum-compat
comme exigence. Il ne s'installe queenum34
pour les anciennes versions de python sans l'énumération de bibliothèque standard.la source
ipython2 --> traitlets --> enum34
. (Malheureusement,enum34
est installé dans.../2.7/site-packages/enum
ne pas.../2.7/site-packages/enum34
- demander des problèmes.)Skipping enum34 as it is not installed
.. J'utilise 3.7print(enum.__file__)
je donne ceci:/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/enum.py
. Cela signifie-t-il que j'ai uneenum
bibliothèque standard et nonenum34
? Edit: ouais,pip uninstall enum34
m'a donnéSkipping enum34 as it is not installed.
jupyter notebook
.Je ne sais pas si vous rencontrez toujours ce problème. J'ai eu un problème similaire et j'ai pu le résoudre simplement en désactivant
PYTHONPATH
$ unset PYTHONPATH
la source
Settings->Build, Execution, Deployment->Console->Python Console
. J'ai ensuite supprimé la variable PYTHONPATH du champ intituléEnvironment variables
. Remarque: au moment d'écrire ces lignes, j'utilisais PyCharm 2017.1.2.Pour moi, cette erreur s'est produite après l'installation du composant gcloud app-engine-python afin de l'intégrer dans pycharm. La désinstallation du module a aidé, même si pycharm ne se télécharge plus sur app-engine.
la source
Si quelqu'un vient ici en raison de cette erreur lors de l'exécution d'un projet d'environnement standard Python 3.7 du moteur d'application google dans PyCharm, tout ce que vous avez à faire est
La raison étant selon ce lien
Je suppose que lorsque nous créons un projet python 3.7 dans PyCharm en tant que projet de moteur d'application Google, il essaie toujours de faire de la même manière qu'il le fait pour une application python2.7
la source
gcloud app deploy
. Cela n'a rien à voir avec pycharm.DISCLAIMER: S'il vous plaît, @ juanpa.arrivillaga, si vous voyez cette réponse, n'hésitez pas à écrire la vôtre et je supprimerai ce message.
@ juanpa.arrivillaga avait mentionné ci-dessus :
C'était le problème que j'ai rencontré. Je n'étais pas au courant du module enum sur python à l'époque et j'avais nommé mon fichier de test
enum.py
.Étant donné que le nom de fichier est le nom du module, il y avait un conflit. Plus d'informations sur les modules ici: https://docs.python.org/2/tutorial/modules.html
la source
La désactivation de "Assistance Google App Engine" dans les préférences pycharm a résolu ce problème pour moi.
la source
La réponse de Håken Lid a aidé à résoudre mon problème (merci!), Dans mon cas présent dans Python3.7 exécutant Flask dans un conteneur Docker (
FROM tiangolo/uwsgi-nginx-flask:python3.7-alpine3.7
).Dans mon cas,
enum34
était en cours d'installation par une autre bibliothèque (pip install smartsheet-python-sdk
). Pour ceux qui viennent avec un problème de conteneur Docker similaire, voici mon dernier fichier Docker (dépouillé des lignes pertinentes):la source
Si vous devez conserver PYTHONPATH pour python2 et python3, vous pouvez écrire des instructions d'alias pour définir le PYTHONPATH approprié dans votre bash_profile:
Codez en dur vos variables PYTHONPATH2 et PYTHONPATH3 dans votre ~ / .bash_profile, et ajoutez les alias suivants à la fin:
Mon
python
(fait référence à python2) car j'utilise plus souvent python2.la source
Chaque fois que j'ai ce problème:
tout d'abord, je lance la commande:
puis exécutez la commande souhaitée, puis réussissez.
la source
L'installation de la version 1.1.8 de enum34 a fonctionné pour moi.
Source: https://github.com/python-poetry/poetry/issues/1122
la source
pyinstaller
.Je l'ai fait en utilisant
pip install <required-library> --ignore-installed enum34
Une fois que votre bibliothèque requise est installée, recherchez les avertissements pendant la construction. J'ai eu une erreur comme celle-ci:
Using legacy setup.py install for future, since package 'wheel' is not installed
ERROR: pyejabberd 0.2.11 has requirement enum34==1.1.2, but you'll have enum34 1.1.10 which is incompatible.
Pour résoudre ce problème maintenant exécuter la commande:
pip freeze | grep enum34
. Cela vous donnera la version de l'énum34 installé. Désinstallez-le maintenantpip uninstall enum34
et réinstallez la version requise commepip install "enum34==1.1.20"
la source
J'ai Python 2 et Python 3 installés sur mon ordinateur. Pour une raison étrange, j'ai dans le sys.path de Python 3 également un chemin vers le répertoire de la bibliothèque sitepackage de Python2 lorsque le module re est appelé. Si j'exécute Python 3 et que j'import enum et que
print(enum.__file__)
le système n'affiche pas ce chemin Python 2 vers les packages de site. Donc, un hack très grossier et sale est de modifier directement le module dans lequel enum est importé (suivez les chemins de traceback) et d'insérer le code suivant juste avant d'importer enum:Cela a résolu mon problème.
la source
Même j'ai eu ce problème lors de l'exécution de python -m grpc_tools.protoc --version J'ai dû définir les packages de site PYTHONPATH et arrêter toutes les fenêtres d'invite de commande et cela a fonctionné. J'espère que cela aidera les utilisateurs de gRPC.
la source
J'ai eu ce problème dans ubuntu20.04 dans jupyterlab dans mon noyau d'environnement virtuel avec python3.8 et tensorflow 2.2.0. Le message d'erreur était
Le problème était que dans le lien symbolique dans / usr / bin / python pointait vers python2. Solution:
J'espère que python2 mourra bientôt! Terveisin, Markus
la source
Si vous rencontrez ce problème lors de l'exécution de tests dans
PyCharm
, assurez-vous que la deuxième case n'est pas cochée dans les configurations.la source
Si quelqu'un rencontre ce problème en essayant d'exécuter le noyau Jupyter à partir d'un virtualenv, ajoutez simplement le correct
PYTHONPATH
àkernel.json
de votre noyau virtualenv (Python 3 dans l'exemple):la source