6

我正在尝试安装python。或者实际上,现在已经安装和卸载了几次。我正在将 pythonxy 与 spyder IDE 一起使用(我习惯于 matlab 是我想使用 spyder 的原因)。在我的 win8 机器上,3.3.2 python 甚至不会以 spyder 启动,所以现在我安装了 2.7 版本。

Spyder 现在启动了,但启动时我得到''import sitecustomize' failed?在我的控制台中,python 不会执行我输入的任何命令。出现错误后,启动脚本会一直运行下去而没有做任何事情,我也不能再做任何事情了。该错误告诉我使用 -v 附录启动 python,输出如下。

我用谷歌搜索了这个错误,这给了我两个可能的解决方案:我应该编辑 python.rb https://github.com/mxcl/homebrew/commit/10ba101c323f98118b427f291e15abc5b3732991 或者我应该应用这个(最后一篇文章中的附件)到 sitecustomize https:// /code.google.com/p/spyderlib/issues/detail?id=771

应用 diff 文件没有帮助,正如 mata 在下面解释的那样,在安装过程中使用了 .rb 文件,因此不适用于我的问题。

所以我的问题是:有人知道如何从经验中修复这个错误吗?

错误:

'import sitecustomize' failed; use -v for traceback
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

追溯:

C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc matches C:\Python27\lib\site-packages\spyderlib\pil_patch.py

import spyderlib.pil_patch # precompiled from C:\Python27\lib\site-packages\spyderlib\pil_patch.pyc

Traceback (most recent call last):

  File "C:\Python27\lib\site.py", line 498, in execsitecustomize
    import sitecustomize

  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 174, in <module>

    os.environ["SPYDER_AR_STATE"].lower() == "true")
  File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\monitor.py", line 146, in __init__

    self.n_request.connect( (host, notification_port) )
  File "C:\Python27\lib\socket.py", line 224, in meth

    return getattr(self._sock,name)(*args)

socket.error: [Errno 10061] No connection could be made because the target machine actively refused it

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
4

4 回答 4

3

(这里的 Spyder 开发人员)我几乎可以肯定您的问题是由于防火墙问题。您的防火墙似乎太严格了,它阻止了所有尝试为我们的目的打开端口的尝试。

为了避免在评估内容时阻塞整个应用程序,我们在与 Spyder 运行的进程不同的进程上运行我们的 python 解释器。我们使用简单的套接字协议与该进程通信,该协议在您的机器上打开一个新端口,并通过该端口在控制台和 Spyder 之间来回发送数据。

这也是您在常规 python 解释器上看不到错误的原因:因为它不需要打开端口即可运行。

于 2013-06-25T21:56:40.810 回答
3

按照 Carlos Cordoba 的回答,我做了以下事情(使用 Ubuntu 15.10):

1-) 禁用防火墙

sudo ufw disable 

2-) 重置 spyder 并应用默认设置:

spyder --reset
spyder --default

3-) 再次运行 Spyder

spyder

4-) 启用防火墙

sudo ufw enable

它现在工作正常。

于 2015-10-27T17:07:36.313 回答
2

在摸索防火墙设置后,我找不到任何可以使 spyder 工作的东西。
在完全相同的配置下,有些运行会起作用,有些则不会。
我暂时排除防火墙。

我注意到sitecustomize尝试连接的端口没有在监听。启动 spyder 之前的
设置提供了更多详细信息:SPYDER_DEBUG=True

Traceback (most recent call last):
  File "P:\Python33\lib\threading.py", line 637, in _bootstrap_inner
    self.run()
  File "P:\Python33\lib\site-packages\spyderlib\widgets\externalshell\introspection.py", line 64, in run
    sock.bind( ("127.0.0.1", self.port) )
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions`

我通过替换线做了一个肮脏的黑客:

sock.bind( ("127.0.0.1", self.port) )

通过以下方式:

for loopCount in range(10, -1, -1):
  try:
    sock.bind( ("127.0.0.1", self.port) )
    break
  except OSError:
    if DEBUG:
      logging.debug('Notification server: Bind on port %d failed...' % (self.port))
    if not loopCount:
      raise
    import time
    time.sleep(1)

它似乎有效,但这可能比其他任何事情都更幸运......

版本:

  • Spyder 2.3.0dev1
  • 蟒蛇3.3.2(64位)
于 2013-06-26T22:32:26.280 回答
1

我有同样的问题。为它工作了几个月......来自 Redhat 7(Scientific Linux)的 EPEL 库的 spyder。

最后发现我需要一个未设置为要求的额外包。python-matplotlib

添加该python包后,我所有的问题都消失了!

啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!

于 2017-02-16T06:18:13.083 回答