pip install
(Kompilierungsfehler: PyThreadState
hat kein Mitglied ...) mit Python 3.7rc1 nicht möglich.
Ich entschuldige mich, wenn dies gemeldet wurde, aber ich konnte es weder in den Ausgaben (geschlossen/offen) noch in einem Pull-Request dafĂŒr finden.
Es gab Ă€hnliche Probleme mit pyyaml ââ(yaml/pyyaml#126), numpy (numpy/numpy#10500), cython (cython/cython#1978) und pygame (pygame/pygame#382).
Installieren Sie Python 3.7rc1.
pip install scikit-learn
pip
erfolgreich.
Kompilierungsfehler:
...
sklearn/cluster/_dbscan_inner.cpp: In function âint
__Pyx__GetException(PyThreadState*, PyObject**, PyObject**, PyObject**)â:
sklearn/cluster/_dbscan_inner.cpp:6029:24: error: âPyThreadStateâ has no member named âexc_typeâ
tmp_type = tstate->exc_type;
^
sklearn/cluster/_dbscan_inner.cpp:6030:25: error: âPyThreadStateâ has no member named âexc_valueâ
tmp_value = tstate->exc_value;
^
sklearn/cluster/_dbscan_inner.cpp:6031:22: error: âPyThreadStateâ has no member named âexc_tracebackâ
tmp_tb = tstate->exc_traceback;
^
sklearn/cluster/_dbscan_inner.cpp:6032:13: error: âPyThreadStateâ has no member named âexc_typeâ
tstate->exc_type = local_type;
^
sklearn/cluster/_dbscan_inner.cpp:6033:13: error: âPyThreadStateâ has no member named âexc_valueâ
tstate->exc_value = local_value;
^
sklearn/cluster/_dbscan_inner.cpp:6034:13: error: âPyThreadStateâ has no member named âexc_tracebackâ
tstate->exc_traceback = local_tb;
^
error: Command "g++ -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g
-fwrapv -O3 -Wall -fPIC
-I/data/install/lib/python3.7/site-packages/numpy/core/include
-I/data/install/lib/python3.7/site-packages/numpy/core/include
-I/data/install/include/python3.7m -c sklearn/cluster/_dbscan_inner.cpp -o
build/temp.linux-x86_64-3.7/sklearn/cluster/_dbscan_inner.o -MMD -MF
build/temp.linux-x86_64-3.7/sklearn/cluster/_dbscan_inner.o.d" failed with exit
status 1
Linux-3.10.0-862.el7.x86_64-x86_64-with-redhat-7.5-Maipo
Python 3.7.0rc1 (default, Jun 19 2018, 10:54:58)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
NumPy 1.14.5
SciPy 1.1.0
Danke, dass du das gemeldet hast!
Funktioniert die Installation der neuesten Entwicklerversion?
pip install https://github.com/scikit-learn/scikit-learn/archive/master.zip
Beachten Sie, dass Sie Cython >=0.27.3 benötigen, um es zu kompilieren.
(Verlinkung zu https://github.com/scikit-learn/scikit-learn/issues/11224 fĂŒr zukĂŒnftige Referenzen)
Es hört sich so an, als ob dies etwas sein könnte, das Cython reparieren und veröffentlichen muss. Wir
sind hier auf Cythons UnterstĂŒtzung fĂŒr Py3.7 angewiesen.â
Ja, laut https://github.com/cython/cython/issues/1955 sind die Mindestanforderungen unter Python 3.7 Cython 0.27.3, wo dieses Problem behoben wurde. In #11224 kann ich bestÀtigen, dass der Build mit Cython 0.28 gut funktioniert.
Die minimale Cython-Version in doc/developers/advanced_installation.rst
sollte wahrscheinlich fĂŒr Python 3.7 entsprechend aktualisiert werden
Der einfachste Weg fĂŒr uns, auf die UnterstĂŒtzung von Python 3.7 umzusteigen, besteht darin, sie in unserem tĂ€glichen Job "Neueste AbhĂ€ngigkeiten" zu verwenden. Dies ist jedoch am einfachsten, wenn NumPy und SciPy Python 3.7 unterstĂŒtzen. NumPy produziert RĂ€der fĂŒr 3.7. Im Moment erstellt SciPy keine Builds auf Python 3.7, sondern arbeitet daran (https://github.com/scipy/scipy/pull/8988). Wir werden versuchen, diesem Beispiel zu folgen.
IMO, wir sollten uns keine Sorgen um die UnterstĂŒtzung von Python 3.7 in v0.20.0 machen, sondern uns in einem Bugfix-Release (0.20.1 oder 0.20.2) darum kĂŒmmern, angesichts der begrenzten UnterstĂŒtzung in SciPy und Six (https://github.com /benjaminp/six/pull/241).
IMO, wir sollten uns keine Sorgen um die UnterstĂŒtzung von Python 3.7 in v0.20.0 machen, sondern uns in einem Bugfix-Release (0.20.1 oder 0.20.2) darum kĂŒmmern.
Um die Situation fĂŒr Python 3.7 zusammenzufassen,
SciPy hat jetzt BinĂ€rrĂ€der fĂŒr Python 3.7 (alle Plattformen).
FWIW, #11409 gibt an, dass wir mit den Entwicklungsversionen von numpy, scipy und cython bauen können und alle Tests bestehen (allerdings mit PendingDeprecationWarning und DeprecationWarning). Es wird jedoch nicht versucht, die Beispielgalerie auszufĂŒhren. Es versucht auch nicht, in Windows zu bauen (vielleicht sollte es).
homebrew
hat mich auf Python 3.7.0 aktualisiert und ich bin jetzt ohne Scikit-Learn.
Wann glaubst du, kann ich pip3 install scikit-learn
tun? eine Woche? ein Monat? ein Jahr?
Ich benötige diese Informationen, um zu entscheiden, ob ich warten oder auf 3.6.* downgraden möchte.
Vielen Dank.
Wann denkst du, kann ich pip3 install scikit-learn installieren? eine Woche? ein Monat? ein Jahr?
Ein Monat sehr grob fĂŒr die nĂ€chste Veröffentlichung. In der Zwischenzeit können Sie entweder die Entwicklungsversion https://github.com/scikit-learn/scikit-learn/issues/11320#issuecomment -398556438 installieren oder auf Python 3.6 downgraden.
Wir könnten erwĂ€gen, 0.19.2 in Eile nur fĂŒr die UnterstĂŒtzung von Py3.7 zu veröffentlichen??â
Angesichts der Menge an Themen, die in letzter Zeit dazu aufgeworfen wurden, könnte dies tatsĂ€chlich vorzuziehen sein. Es wird auch Vergleiche / Regressionsverfolgung zwischen 0.19.x und 0.20.x fĂŒr Leute vereinfachen, die in Zukunft Python 3.7 verwenden.
Wenn wir am Ende eine Version von 0.19.2 erstellen, sollten Sie Folgendes in Betracht ziehen, da sie 0.19.1 ohne besonderen Grund verpasst haben.
Unter Ubuntu 18.04 funktioniert die empfohlene Problemumgehung:
pip installieren https://github.com/scikit-learn/scikit-learn/archive/master.zip
@rth
Ein Monat sehr grob fĂŒr die nĂ€chste Veröffentlichung. In der Zwischenzeit können Sie entweder die Entwicklungsversion #11320 installieren (Kommentar) oder auf Python 3.6 downgraden.
Homebrew hat seine standardmĂ€Ăige Python-Installation auf 3.7 aktualisiert. Da Homebrew die Installation bestimmter Versionen nicht zulĂ€sst, ist ein Downgrade auf 3.6 keine leichte Aufgabe. Nur ein FYI
@bgyarfas es sollte möglich sein, von Python 3.7 zurĂŒck auf 3.6.5 im GebrĂ€u herunterzustufen
brew info python3
brew switch python 3.6.5
Dies funktioniert nur, wenn die vorherige Version noch auf dem lokalen Computer zwischengespeichert ist.
@bgyarfas Wenn Sie 3.6 nicht im Homebrew zwischengespeichert haben, können Sie pyenv verwenden. Bei mir hat folgendes funktioniert...
brew install pyenv
pyenv install 3.6.5
eval "$(pyenv init -)"
pyenv shell 3.6.5
pip install virtualenv
virtualenv venv-3.6
source venv-3.6/bin/activate
Sie können dies ohne virtualenv tun, aber mein typisches Setup basiert darauf.
Ich denke, der Punkt ist, dass der durchschnittliche Homebrew-Benutzer standardmĂ€Ăig Python 3.7 verwendet.
Ich denke, der Punkt ist, dass der durchschnittliche Homebrew-Benutzer standardmĂ€Ăig Python 3.7 verwendet.
Eine kleinere Version 0.19.2, die Python 3.7 unterstĂŒtzt, ist in Arbeit.
Wie sieht der Zeitplan fĂŒr die Version 19.2 aus?
Danke!
@sam-s Wenn Sie es jetzt brauchen, können Sie versuchen, den Master-Zweig mit der neuesten Cython-Version zu installieren:
pip install -U cython
pip install -e git+https://github.com/scikit-learn/scikit-learn@master#egg=scikit-learn
Dies funktionierte fĂŒr mich unter Python 3.7 mit pipenv.
Wenn das Release verfĂŒgbar ist, sollten Sie natĂŒrlich vom (möglicherweise) instabilen Master-Zweig auf das richtige Release wechseln.
Sie können auch aus dem 0.19.X-Zweig installieren, der im Grunde bereit ist fĂŒr
Veröffentlichung, aber die Leute, die die Veröffentlichung vornehmen können, waren nicht verfĂŒgbar.
Version 0.19.2 ist jetzt auf PyPI verfĂŒgbar: https://pypi.org/project/scikit-learn/0.19.2/
SchlieĂung wie fest. Bitte verwenden Sie 0.19.2 mit Python 3.7.
Was ist der Plan fĂŒr 0.20.X? Es sieht so aus, als ob ich mit 0.20.0 bauen kann, aber nicht mit 0.20.1.
Die Fehler sind wie folgt:
sklearn/cluster/_hierarchical.cpp:24792:13: error: âPyThreadState {aka struct _ts}â has no member named âexc_tracebackâ; did you mean âcurexc_tracebackâ?
tstate->exc_traceback = *tb;
Haben Sie versucht, Cython wie in https://github.com/scikit-learn/scikit-learn/issues/11320#issuecomment -398631435 erwÀhnt zu aktualisieren?
Gerade auf 0.20.2 aktualisiert und es funktioniert.
Ich habe die Erfahrung gemacht, dass alle Versionen niedriger als 0.20
(zB 0.16
, 0.17
, 0.18
, 0.19
) kaputt gehen.
Meine Tests: https://travis-ci.org/nok/sklearn-porter/builds/561765760
Gibt es PlÀne, diese Versionen abzudecken?
Ich habe die Erfahrung gemacht, dass alle Versionen kleiner als 0.20 (zB 0.16, 0.17, 0.18, 0.19) kaputt gehen.
Gibt es PlÀne, diese Versionen abzudecken?
Ich glaube nicht. Benutzer mit Python 3.7 mĂŒssten mindestens auf scikit-learn 0.20.X aktualisieren.
Hilfreichster Kommentar
Eine kleinere Version 0.19.2, die Python 3.7 unterstĂŒtzt, ist in Arbeit.