Wenn Sie ab dem 26. Dezember 2015 die Python 2.x-Serie mit Homebrew installieren, wird 2.7.10 mit dem Namen 2.7.11 installiert. Diese 2.7.11 hat einige Fehler und einige Module wie Django funktionieren nicht gut.
Nach der Installation von Django
python manage.py runserver
Dann
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
Ist das? ?? ?? Ich bekomme eine Fehlermeldung. Abgesehen von den Details scheint es an einem Fehler in Python 2.7.11 zu liegen, daher möchte ich ein Downgrade auf 2.7.10 durchführen. .. ..
brew search <package_name>
Es scheint, dass Sie die Version auswählen können, solange sie durchsucht werden kann, aber es scheint keine Möglichkeit zu geben, die Installation von Python 2.7.10 und 2.7.11 zu sortieren. Was sollen wir dann tun?
Ich dachte über verschiedene Methoden nach, entschied mich aber, die Formel direkt zu bearbeiten. Python einmal löschen.
brew remove python
Die Formel bleibt erhalten, bearbeiten Sie sie also.
brew edit python
Bearbeiten Sie den Teil, der sich auf die Version bezieht.
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"
Mit Brew Brew wird vi gestartet, also bearbeiten und normal speichern. Versuchen Sie nach dem Speichern erneut, die Installation durchzuführen.
brew install python
Dann wird es natürlich eine SHA256-Fehlanpassung geben.
==> 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.
Da Actual der eigentliche Code ist, kopieren Sie ihn und legen Sie ihn erneut als erwarteten Wert für Formula fest.
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"
Führen Sie nun erneut install aus.
brew install python
Es scheint, dass Python 2.7.10 erfolgreich installiert wurde.
Nun wollen wir sehen, ob der Testserver gestartet werden kann.
python manage.py runserver
Es scheint erfolgreich begonnen zu haben.
Recommended Posts