我正在尝试安装python。或者实际上,现在已经安装和卸载了几次。我正在使用pythonxy与spyder IDE(我习惯使用matlab是我想使用spyder的原因)。 3.3.2 python甚至不会在我的win8机器上用spyder开始,所以现在我安装了2.7版本。
Spyder现在启动,但在启动时我得到'import sitecustomize'失败了?在我的控制台和python中不会执行我输入的任何命令。在错误之后,startupscript继续不做任何事情,我不能再做任何事了。该错误告诉我用-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.
答案 0 :(得分:3)
(Spyder dev here)我几乎可以肯定你的问题是因为防火墙问题。看起来您的防火墙太严格了,它阻止了所有试图为我们的目的打开端口的尝试。
为了避免在评估内容时阻塞整个应用程序,我们在一个与Spyder运行的进程不同的进程上运行python解释器。我们使用简单的套接字协议与该进程进行通信,该协议在您的计算机上打开一个新端口,并通过该端口在控制台和Spyder之间来回发送数据。
这也是你没有在常规python解释器上看到错误的原因:因为它不需要打开一个端口来运行。
答案 1 :(得分: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)
它似乎有效,但这可能比其他任何事情更幸运......
版本:
答案 2 :(得分:2)
按照Carlos Cordoba的回答,我做了以下(使用Ubuntu 15.10):
1-)禁用防火墙
sudo ufw disable
2-)重置spyder并应用默认设置:
spyder --reset
spyder --default
3-)Ran Spyder再次
spyder
4-)启用防火墙
sudo ufw enable
它现在正常运作。
答案 3 :(得分:1)
我有同样的问题。工作了好几个月...... 来自EPEL图书馆的Redhat 7(Scientific Linux)的spyder。
最后想通了我需要一个未被设置为要求的额外包。蟒-matplotlib
添加python包后,我的所有问题都消失了!
Arrrggghhhhh ....... !!!!!