Невозможно pip install
(ошибка компиляции: PyThreadState
не имеет члена ...) с Python 3.7rc1.
Приношу свои извинения, если об этом было сообщено, но я не смог найти его ни в проблемах (закрытых / открытых), ни в каких-либо запросах на перенос.
Аналогичные проблемы были с pyyaml (yaml / pyyaml # 126), numpy (numpy / numpy # 10500), cython (cython / cython # 1978) и pygame (pygame / pygame # 382).
Установите Python 3.7rc1.
pip install scikit-learn
pip
успешно.
Ошибки компиляции:
...
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
Спасибо, что сообщили об этом!
Работает ли установка последней версии dev?
pip install https://github.com/scikit-learn/scikit-learn/archive/master.zip
Обратите внимание, что для его компиляции вам потребуется Cython> = 0.27.3.
(Ссылка на https://github.com/scikit-learn/scikit-learn/issues/11224 для дальнейшего использования)
Похоже, это то, что Cython нужно исправить и выпустить. Мы
здесь зависят от поддержки Cython для Py3.7.
Да, согласно https://github.com/cython/cython/issues/1955, минимальные требования для Python 3.7 - Cython 0.27.3, где эта проблема была исправлена. В # 11224 я могу подтвердить, что сборка отлично работает с Cython 0.28.
Минимальная версия Cython в doc/developers/advanced_installation.rst
вероятно, должна быть обновлена соответственно для Python 3.7.
Самый простой способ перейти к поддержке Python 3.7 - это использовать его в нашей повседневной работе «Последние зависимости». Но это проще всего, когда NumPy и SciPy поддерживают Python 3.7. NumPy производит колеса для 3.7. На данный момент SciPy не делает сборки на Python 3.7, но работает над ним (https://github.com/scipy/scipy/pull/8988). Мы постараемся последовать их примеру.
IMO, нам не следует беспокоиться о поддержке Python 3.7 в v0.20.0, но мы должны решить эту проблему в выпуске с исправлением ошибок (0.20.1 или 0.20.2), учитывая ограниченную поддержку в SciPy и Six (https://github.com / Бенджаминп / шесть / тянуть / 241).
ИМО, нам не следует беспокоиться о поддержке Python 3.7 в v0.20.0, мы должны решить эту проблему в выпуске с исправлением ошибок (0.20.1 или 0.20.2),
Подводя итог ситуации для Python 3.7,
У SciPy теперь есть бинарные колеса для Python 3.7 (все платформы).
FWIW, # 11409 определяет, что мы можем построить с помощью разрабатываемых версий numpy, scipy и cython, и все тесты проходят (хотя и с PendingDeprecationWarning и DeprecationWarning). Однако он не пытается запустить галерею примеров. Он также не пытается строить в Windows (возможно, стоит).
homebrew
обновил меня до Python 3.7.0, и теперь я остался без scikit-learn.
как вы думаете, когда я смогу сделать pip3 install scikit-learn
? неделя? месяц? год?
Мне нужна эта информация, чтобы решить, подождать или перейти на версию 3.6. *.
Большое Вам спасибо.
как вы думаете, когда я смогу выполнить pip3 install scikit-learn? неделя? месяц? год?
Примерно месяц до следующего релиза. Тем временем вы можете либо установить разрабатываемую версию https://github.com/scikit-learn/scikit-learn/issues/11320#issuecomment -398556438, либо перейти на python 3.6.
Мы могли бы подумать о выпуске 0.19.2 в спешке только для поддержки Py3.7 ??
Учитывая количество вопросов, которые были открыты по этому поводу в последнее время, это действительно может быть предпочтительнее. Это также упростит сравнение / отслеживание регрессии между 0.19.x и 0.20.x для людей, использующих Python 3.7 в будущем.
Если мы в конечном итоге выпустим выпуск 0.19.2, стоит подумать о добавлении двух вещей, потому что они пропустили 0.19.1 без особой уважительной причины.
В Ubuntu 18.04 работает рекомендуемый обходной путь:
pip установить https://github.com/scikit-learn/scikit-learn/archive/master.zip
@rth
Примерно месяц до следующего релиза. Тем временем вы можете либо установить версию для разработки # 11320 (комментарий), либо перейти на python 3.6.
Homebrew обновил установку Python по умолчанию до версии 3.7. Поскольку homebrew не позволяет устанавливать определенные версии, понижение до 3.6 - непростая перспектива. Просто к вашему сведению
@bgyarfas должно быть возможно откатиться с python 3.7 до 3.6.5 в brew
brew info python3
brew switch python 3.6.5
Это работает, только если предыдущая версия все еще кэшируется на локальном компьютере.
@bgyarfas Если у вас нет
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
Вы можете сделать это без virtualenv, но моя типичная установка полагается на это.
Я думаю, дело в том, что средний пользователь Homebrew по умолчанию будет иметь Python 3.7.
Я думаю, дело в том, что средний пользователь Homebrew по умолчанию будет иметь Python 3.7.
Незначительный выпуск 0.19.2, который будет поддерживать Python 3.7, находится в стадии разработки.
каковы сроки выхода версии 19.2?
Благодарность!
@ sam-s Если вам это нужно сейчас, вы можете попробовать установить главную ветку, используя последнюю версию cython:
pip install -U cython
pip install -e git+https://github.com/scikit-learn/scikit-learn@master#egg=scikit-learn
Это сработало для меня на Python 3.7 с использованием pipenv.
Конечно, когда выпуск станет доступен, вы должны переключиться с (возможно) нестабильной основной ветки на правильный выпуск.
вы также можете установить из ветки 0.19.X, которая в основном готова для
релиз, но людей, которые могут его выпустить, не было.
Релиз 0.19.2 теперь доступен на PyPI: https://pypi.org/project/scikit-learn/0.19.2/
Закрытие как исправлено. Пожалуйста, используйте 0.19.2 с Python 3.7.
Какой план на 0.20.X? Похоже, я могу построить с 0.20.0, но не с 0.20.1.
Ошибки такие:
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;
Вы пробовали обновить Cython, как указано в https://github.com/scikit-learn/scikit-learn/issues/11320#issuecomment -398631435?
Только что обновился до 0.20.2, и все работает.
Я убедился, что все версии ниже 0.20
(например, 0.16
, 0.17
, 0.18
, 0.19
) сломаются.
Мои тесты: https://travis-ci.org/nok/sklearn-porter/builds/561765760
Есть ли какие-нибудь планы по освещению этих версий?
Я убедился, что все версии ниже 0,20 (например, 0,16, 0,17, 0,18, 0,19) не работают.
Есть ли какие-нибудь планы по освещению этих версий?
Я так не думаю. Пользователи с Python 3.7 должны будут обновить как минимум до scikit-learn 0.20.X.
Самый полезный комментарий
Незначительный выпуск 0.19.2, который будет поддерживать Python 3.7, находится в стадии разработки.