首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spyder无法在Windows 10上使用Python3.8启动

问Spyder无法在Windows 10上使用Python3.8启动
EN

Stack Overflow用户
提问于 2019-10-25 10:57:31
回答 1查看 11K关注 0票数 5

注意:这个问题是固定的间谍4.1.3!

(最初的问题)在Windows10上查看Python3.8 (x64),我在尝试安装Spyder时遇到了麻烦。注意:在干净的Windows-10系统上安装了新的Python,这个问题是可以重现的。但是,Linux上没有这样的问题(在debian /Mint19.x上进行了测试)。

一开始,在通过pip install spyder进行安装期间,一切都很顺利。

错误#1: pywin32

启动Spyder后,在IPython控制台窗口中显示:

代码语言:javascript
复制
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,也可以参见这里 --不过,我建议不要修改系统文件夹,并使用我在下面我的回答中添加的选项。

错误#2: tornado

然而,现在Spyder只是冻结在加载屏幕(徽标显示,说“初始化主窗口”)!

从https://github.com/spyder-ide/spyder.git克隆Spyder的dev版本并通过python bootstrap.py --debug运行它可以揭示冻结的原因:

代码语言:javascript
复制
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

...so看来,由Python3.8版本的pywin32引起的导入错误只是一个问题。还有一个与tornado IO (web服务器)相关的问题,参见这里 / 这里。

最后一次使用Python3.8.2 (AMD64),Spyder4.1.1。请注意,我是,而不是使用Anaconda的。使用conda 或 pip,而不是两者兼用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-03 17:34:51

间谍4.1.3更新:问题解决了!

(在Python3.8.3rc1、龙卷风6.0.4上测试)

如果您来这里仍然遇到类似的Spyder启动问题:我建议升级到Spyder版本>= 4.1.3。

这个答案的旧版本

解决方案,龙卷风问题:

修改文件...\Python38...\Lib\site-packages\tornado\platform\asyncio.py;添加

代码语言:javascript
复制
import sys
if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

在其他导入语句之后。资料来源:在这里所以,并链接这里。如果我正确地得到了这在tornado回购上的帖子,这可能是一个非常永久的解决办法。

如果也需要-解决方案,pywin32问题:

修改文件...\Python38\Lib\site-packages\jupyter_core\path.py;添加一行

代码语言:javascript
复制
import pywintypes

在import win32api之前的第359行。此修改基于这 post。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58557238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档