web-dev-qa-db-fra.com

Comment puis-je résoudre Python "Impossible de trouver les bibliothèques indépendantes de la plate-forme <préfixe>"

J'essaie d'utiliser Fontcustom pour créer une police d'icônes à l'aide de fichiers svg et de fontforge. Je suis sur OSX.7. Cependant, chaque fois que je lance le programme, j'obtiens l'erreur

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site`

En tant que novice Python/Unix, je ne sais même pas par où commencer pour essayer de résoudre ce problème. Quelqu'un peut-il offrir des conseils? Que sont <prefix> et <exec_prefix> se référant à?

Quand je tape python --version Je reçois Python 2.7.1. Et dans le répertoire /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7, il y a une grande liste de modules et site.py se trouve certainement dans ce dossier. Comment puis-je obtenir mon ordinateur pour trouver les modules?

44
Lars

Si vous avez créé un env virtuel, puis supprimé cette installation python, vous obtiendrez la même erreur. Just rm -r _ votre dossier venv, puis recréez-le avec un emplacement python valide) et exécutez pip install -r requirements.txt et vous serez prêt (en supposant que vous ayez bien vos exigences.txt).

43
Peter Mitrano

Essayez export PYTHONHOME=/usr/local. Python devrait être installé dans /usr/local sur OS X.

Cette réponse a reçu un peu plus d'attention que prévu, je vais ajouter un peu plus de contexte.

Normalement, Python cherche ses bibliothèques dans les chemins prefix/lib et exec_prefix/lib, où prefix et exec_prefix sont des options de configuration. Si la variable d’environnement PYTHONHOME est définie, la valeur de prefix et exec_prefix en sont hérités. Si la variable d’environnement PYTHONHOME n’est pas définie, alors prefix et exec_prefix défaut à /usr/local (et je crois qu’il existe d’autres moyens de définir prefix/exec_prefix aussi, mais je ne les connais pas totalement).

Normalement, lorsque vous recevez le message d'erreur Could not find platform independent libraries <prefix>, la chaîne <prefix> _ serait remplacé par la valeur réelle de prefix. Cependant, si prefix a une valeur vide, vous obtenez les messages plutôt cryptés publiés dans la question. Une façon d'obtenir un prefix vide serait de définir PYTHONHOME sur une chaîne vide. Plus d'infos sur PYTHONHOME, prefix et exec_prefix est disponible dans les documents officiels .

28
jayhendren

changez PYTHONHOME dans le dossier parent du fichier bin de python, comme/usr, qui est le dossier parent de/usr/bin.

6
jimmy

J'ai eu ce problème et j'ai passé quelques heures à essayer de le résoudre. J'ai corrigé l'erreur de préfixe en changeant le chemin mais j'avais toujours une erreur d'importation de codage. Cela a été corrigé en redémarrant mon ordinateur.

(J'ai écrit ceci pour que la prochaine personne à avoir ce problème ne soit pas obligée de passer quelques heures dessus comme je l'ai fait.)

5
Erich

Mon pycharm ce a eu la même erreur, était facile à résoudre, si quelqu'un a cette erreur, il suffit de désinstaller et de supprimer le dossier, utilisez ctrl+h _ Si vous ne trouvez pas le dossier dans vos documents, réinstallez le logiciel et devrait fonctionner à nouveau.

N'oubliez pas de sauvegarder le dossier des rayures avant d'effacer le dossier pycharm.

1
Jesus