À 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. .. ..
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?
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.
Voyons maintenant si le serveur de test peut être démarré.
python manage.py runserver
Cela semble avoir commencé avec succès.
Recommended Posts