Spyder-IDE не запускается на Windows-10 с Python-3.8 - PullRequest
1 голос
/ 25 октября 2019

проверяя Python-3.8.0 (x64) на Windows-10, у меня возникли проблемы при попытке установить Spyder. Примечание: проблема была воспроизводима с новой установкой Python на чистой системе Windows-10. Однако в Linux таких проблем нет (проверено на debian / Mint).

Сначала все прошло гладко во время установки через pip install spyder.


ошибка №1: pywin32

После запуска Spyder в окне консоли IPython говорится:

Traceback (most recent call last):
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\spyder\plugins\ipythonconsole.py", line 1572, in create_kernel_manager_and_kernel_client
kernel_manager.start_kernel(stderr=stderr_handle)
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\jupyter_client\manager.py", line 240, in start_kernel
self.write_connection_file()
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\jupyter_client\connect.py", line 470, in write_connection_file
self.connection_file, cfg = write_connection_file(self.connection_file,
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\jupyter_client\connect.py", line 141, in write_connection_file
with secure_write(fname) as f:
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\contextlib.py", line 113, in __enter__
return next(self.gen)
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\jupyter_core\paths.py", line 424, in secure_write
win32_restrict_file_to_user(fname)
File "c:\users\USERNAME\appdata\local\programs\python\python38\lib\site‑packages\jupyter_core\paths.py", line 359, in win32_restrict_file_to_user
import win32api
ImportError: DLL load failed while importing win32api: Das angegebene Modul wurde nicht gefunden.

Я смог исправить ошибку импорта, запустив pywin32_postinstall.py -install из папки скриптов (из приглашения cmd с повышенными правами). Это копирует pythoncom38.dll и pywintypes38.dll с \Lib\site-packages\pywin32_system32 на \windows\system32, см. Также здесь - однако я бы предложил не изменять системные папки и использовать опцию Iвведите мой ответ ниже.


ошибка № 2: tornado

Однако теперь Spyder просто зависает наЭкран загрузки (отображается логотип с надписью «инициализация главного окна»)!

, клонирование версии Spyder для разработчиков из https://github.com/spyder-ide/spyder.git и запуск через python bootstrap.py --debug показывает причину зависания:

2019-11-03 17:39:53,261 [ERROR] [tornado.application] -> Exception in callback functools.partial(<function ThreadedZMQSocketChannel.__init__.<locals>.setup_stream at 0x0000015E00B758B0>)
Traceback (most recent call last):
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\site-packages\tornado\ioloop.py", line 743, in _run_callback
    ret = callback()
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\site-packages\jupyter_client\threaded.py", line 48, in setup_stream
    self.stream = zmqstream.ZMQStream(self.socket, self.ioloop)
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 127, in __init__
    self._init_io_state()
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 546, in _init_io_state
    self.io_loop.add_handler(self.socket, self._handle_events, self.io_loop.READ)
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\site-packages\tornado\platform\asyncio.py", line 99, in add_handler
    self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
  File "C:\Users\USERNAME\AppData\Local\Programs\Python\Python38\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

... так что, похоже, ошибка импорта, вызванная версией Python 3.8 pywin32, является только одной проблемой. Также существует проблема, связанная с tornado IO (веб-сервер), см. здесь / здесь .

1 Ответ

1 голос
/ 03 ноября 2019

обходной путь, выпуск pywin32:

Изменить файл ...\Python38\Lib\site-packages\jupyter_core\path.py;добавить строку

import pywintypes

до import win32api в строке 359. Это изменение основано на этой записи.


обходной путь, проблема торнадо:

Изменить файл ...\Python38\Lib\site-packages\tornado\platform\asyncio.py;добавьте

import sys
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

после других операторов импорта. Источник: здесь на SO и также связан здесь . Если я получу этот пост в правом репо tornado, это, вероятно, будет довольно постоянный обходной путь.


Spyder, кажется, теперь работает нормально с Python 3.8. 0 в качестве переводчика.

...