ошибка во время выполнения при использовании sklearn в python3.2 (отлично работает в python 2.7) — как это исправить?

#python #numpy #scikit-learn

#python #numpy #scikit-learn

Вопрос:

Я пытаюсь изучить sklearn и при запуске сталкиваюсь с приведенной ниже ошибкой import sklearn . Однако, когда я запускаю точно такой же код, используя python 2.7, я не сталкиваюсь с какими-либо ошибками.

     import sklearn
  File "/usr/local/lib/python3.2/dist-packages/sklearn/__init__.py", line 38, in <module>
    from .base import clone
  File "/usr/local/lib/python3.2/dist-packages/sklearn/base.py", line 10, in <module>
    from scipy import sparse
  File "/usr/lib/python3/dist-packages/scipy/__init__.py", line 124, in <module>
    pkgload(verbose=SCIPY_IMPORT_VERBOSE,postpone=True)
  File "/usr/local/lib/python3.2/dist-packages/numpy/_import_tools.py", line 177, in __call__
    for package_name in self._get_sorted_names():
  File "/usr/local/lib/python3.2/dist-packages/numpy/_import_tools.py", line 114, in _get_sorted_names
    for name in depend_dict.keys():
RuntimeError: dictionary changed size during iteration
  

Я немного погуглил, последовал инструкциям из следующей ссылки и запустил sudo pip3 install git https://github.com/scikit-learn/scikit-learn.git . Установка прошла нормально, однако я продолжаю получать ошибку.

https://askubuntu.com/questions/449326/installation-error-in-sklearn-for-python3

Как можно решить эту проблему. (кроме работы с Python2.7)

Комментарии:

1. можете ли вы обновиться до python 3.4?

2. Я не голосовал против, я просто спрашиваю вас, но это не имеет значения, я вижу, что есть проблема и с 3.4.

3. хорошо, тогда тот, кто проголосовал против, сумасшедший. не могли бы вы предложить, как это исправить?

4. что вы получаете, если import numpy numpy.__version__ используете оболочку python3

5. тогда проблема не в numpy, почему вы не можете перейти на python 3.4? установка из git, как у вас, будет работать с python 3.4, вам также понадобится scipy

Ответ №1:

Это ошибка, которая будет исправлена в следующем выпуске NumPy (версия 1.9.0):

https://github.com/numpy/numpy/commit/5025c40965fa5fb2b591f07c152b966dc7b730f0

На github уже есть исправление, но оно еще не включено в выпуск исправления. Ваши варианты:

  1. Дождитесь исправления версии 1.9.0 для Python 3 и тем временем используйте Python 2.
  2. Просто примените те же изменения к двум строкам в ссылке, которую я предоставил для вашей текущей версии Numpy
  3. Установите Numpy 1.9.0 beta.

Комментарии:

1. в каких версиях numpy есть ошибка?

2. Я не уверен. Все, что я знаю, это то, что они только что узнали об этом.

3. куда мне применить изменения?

4. Это прямо в трассировке стека: /usr/local/lib/python3.2/dist-packages/numpy/_import_tools.py

5. так это относится к python <3.4?