Notez que le serveur d'exécution de Django est moss en Python 2.7.11 fourni avec Homebrew

À compter du 26 décembre 2015, si vous installez la série Python 2.x avec homebrew, 2.7.10 nommé 2.7.11 sera installé. Ce 2.7.11 a quelques bogues et certains modules tels que Django ne fonctionnent pas bien.

Après avoir installé Django

python manage.py runserver

Puis

Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 10, in <module>
    from django.apps import apps
  File "/usr/local/lib/python2.7/site-packages/django/apps/__init__.py", line 1, in <module>
    from .config import AppConfig
  File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 5, in <module>
    from django.utils._os import upath
  File "/usr/local/lib/python2.7/site-packages/django/utils/_os.py", line 5, in <module>
    import tempfile
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 32, in <module>
    import io as _io
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: dlopen(/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder
  Referenced from: /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
  Expected in: flat namespace
 in /usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

Est-ce? ?? ?? J'obtiens une erreur. Mis à part les détails, il semble que cela soit dû à un bogue dans Python 2.7.11, donc je voudrais revenir à 2.7.10. .. ..

Homebrew ne peut pas rétrograder la version de manière

brew search <package_name>

Il semble que vous puissiez sélectionner la version tant qu'elle peut être recherchée, mais il ne semble y avoir aucun moyen d'installer et de trier Python 2.7.10 et 2.7.11. Alors que devons-nous faire?

Modifier la formule directement

J'ai réfléchi à diverses méthodes, mais j'ai décidé de modifier directement la formule. Supprimez python une fois.

brew remove python

La formule reste, alors modifiez-la.

brew edit python

Modifiez la partie liée à la version.

class Python < Formula
  desc "Interpreted, interactive, object-oriented programming language"
  homepage "https://www.python.org"
  head "https://hg.python.org/cpython", :using => :hg, :branch => "2.7"
-  url "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz"
+  url "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz"

Dans brew edit, vi démarre, alors éditez-le normalement et enregistrez-le. Après l'enregistrement, essayez à nouveau d'installer.

brew install python

Ensuite, bien sûr, il y aura une incompatibilité SHA256.

==> Downloading https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
######################################################################## 100.0%
Error: SHA256 mismatch
Expected: 82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6
Actual: eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a
Archive: /Library/Caches/Homebrew/python-2.7.10.tgz
To retry an incomplete download, remove the file above.

Étant donné que Réel est le code réel, copiez-le et redéfinissez-le comme valeur attendue de Formula.

class Python < Formula
  desc "Interpreted, interactive, object-oriented programming language"
  homepage "https://www.python.org"
  head "https://hg.python.org/cpython", :using => :hg, :branch => "2.7"
  url "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz"
+  sha256 "eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a"

Maintenant, exécutez à nouveau l'installation.

brew install python

Il semble que Python 2.7.10 a été installé avec succès.

essayez runserver

Voyons maintenant si le serveur de test peut être démarré.

python manage.py runserver

Cela semble avoir commencé avec succès.

Recommended Posts

Notez que le serveur d'exécution de Django est moss en Python 2.7.11 fourni avec Homebrew
Mémo connecté à HiveServer2 d'EMR avec python
Je veux travailler avec un robot en python.
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Comment développer dans un environnement virtuel Python [Memo]
Créer un message correspondant à la localisation avec la chaîne de traduction python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
[Python] Un mémo pour faire fonctionner une ROM créée avec GBDK avec PyBoy
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Essayez de vous connecter à qiita avec Python
Convertir un mémo à la fois avec Python 2to3
Mémo pour demander des KPI avec python
Un mémo contenant Python2.7 et Python3 dans CentOS
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
Pour faire fonctionner la station d'horodatage en Python
Un mémo organisé en renommant les noms de fichiers dans le dossier avec python
Notez que l'environnement Python de Pineapple peut être modifié avec pyenv
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
[Python] Récupérez les fichiers dans le dossier avec Python
Calculons en fait le problème statistique avec Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Un mémo que j'ai écrit un tri rapide en Python
Comment incorporer des variables dans des chaînes python
Convertissez des PDF en images en masse avec Python
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio
Je veux créer une fenêtre avec Python
Porté un compilateur de langage homebrew naïf sur Python
Comment créer un fichier JSON en Python
Essayez de dessiner une courbe de vie avec python
Je veux faire un jeu avec Python
Comment déposer Google Docs dans un dossier dans un fichier .txt avec python
Créer un environnement virtuel avec conda avec Python
Je voulais installer Python 3.4.3 avec Homebrew + pyenv
Un mémo que j'ai écrit un tri de fusion en Python
Essayez de créer un code de "décryptage" en Python
Une manière intelligente de chronométrer le traitement avec Python
Connectez-vous à Yahoo Business avec Selenium Python
Décidez d'une mission de laboratoire avec Python (fiction)
Un mémo lors de la création d'un environnement python avec miniconda
Étapes pour créer un bot Twitter avec Python
Pour ajouter un module à python que vous mettez dans Julialang
Comment notifier les canaux Discord en Python
Comment utiliser tkinter avec python dans pyenv
Travaillez dans un environnement virtuel avec Python virtualenv.
Créer une nouvelle page en confluence avec Python
Essayez de créer un groupe de dièdre avec Python
Recherche d'un moyen efficace d'écrire un Dockerfile avec Python avec de la poésie
[Python] Comment dessiner un histogramme avec Matplotlib
Je veux écrire dans un fichier avec Python
Zubu amateur veut démarrer Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
Utilisez tkinter pour déplacer le code de sortie en tant que "A et prétendant être B" en python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Une note lors de la vérification si la clé spécifiée existe dans le dictionnaire défini avec python
Je suis resté bloqué en essayant de spécifier un chemin relatif avec relative_to () en python