Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';导入站点自定义';启动spyder时失败_Python_Installation_Spyder - Fatal编程技术网

Python ';导入站点自定义';启动spyder时失败

Python ';导入站点自定义';启动spyder时失败,python,installation,spyder,Python,Installation,Spyder,我正在尝试安装python。或者实际上,现在已经安装和卸载了几次。我在spyder IDE中使用pythonxy(我习惯了matlab,这就是为什么我要使用spyder)。在我的win8机器上,3.3.2 python甚至不会以spyder启动,所以现在我已经安装了2.7版本 Spyder现在启动了,但启动后我得到了“import sitecustomize”失败?在我的控制台中,python不会执行我输入的任何命令。错误发生后,startupscript一直不做任何事情,我也不能再做任何事情了

我正在尝试安装python。或者实际上,现在已经安装和卸载了几次。我在spyder IDE中使用pythonxy(我习惯了matlab,这就是为什么我要使用spyder)。在我的win8机器上,3.3.2 python甚至不会以spyder启动,所以现在我已经安装了2.7版本

Spyder现在启动了,但启动后我得到了“import sitecustomize”失败?在我的控制台中,python不会执行我输入的任何命令。错误发生后,startupscript一直不做任何事情,我也不能再做任何事情了。错误告诉我用-v附录启动python,输出如下

我在谷歌上搜索了这个错误,它给了我两种可能的解决方案: 我应该编辑python.rb 或者我应该将此(上一篇文章中的附件)应用于sitecustomize

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

所以我的问题是:有人知道如何根据经验修复这个bug吗

错误:

“导入站点自定义”失败;使用-v进行回溯
win32上的Python 2.7.5(默认,2013年5月15日,22:43:36)[MSC v.1500 32位(英特尔)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
回溯:

C:\Python27\lib\site packages\spyderlib\pil\u patch.pyc与C:\Python27\lib\site packages\spyderlib\pil\u patch.py匹配
导入从C:\Python27\lib\site packages\spyderlib\pil_patch.pyc预编译的spyderlib.pil#u补丁
回溯(最近一次呼叫最后一次):
execsitecustomize中第498行的文件“C:\Python27\lib\site.py”
导入站点自定义
文件“C:\Python27\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第174行,在
os.environ[“SPYDER_AR_STATE”].lower()=“true”)
文件“C:\Python27\lib\site packages\spyderlib\widgets\externalshell\monitor.py”,第146行,在\uuu init中__
self.n_请求.connect((主机、通知_端口))
文件“C:\Python27\lib\socket.py”,第224行,meth格式
返回getattr(self.\u sock,name)(*args)
socket.error:[Errno 10061]无法建立连接,因为目标计算机主动拒绝了它
win32上的Python 2.7.5(默认,2013年5月15日,22:43:36)[MSC v.1500 32位(英特尔)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
(这里是Spyder dev)我几乎可以肯定您的问题是因为防火墙问题。您的防火墙似乎太严格了,它阻止了所有尝试为我们的目的打开端口的尝试

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


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

在摸索防火墙设置之后,我找不到任何可以使spyder工作的方法。
使用完全相同的配置,某些运行可以正常工作,其他运行则无法正常工作。
我暂时排除防火墙的可能性

我注意到,
sitecustomize
尝试连接的端口未侦听。
在启动SPYDER之前设置
SPYDER\u 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
  • python 3.3.2(64位)

根据卡洛斯·科尔多瓦的回答,我做了以下工作(使用Ubuntu 15.10):

1-)已禁用防火墙

sudo ufw disable 
sudo ufw enable
2-)重置spyder和应用的默认设置:

spyder --reset
spyder --default
3-)斯派德又跑了

spyder
4-)已启用防火墙

sudo ufw disable 
sudo ufw enable

现在它工作正常。

我也有同样的问题。花了几个月的时间。。。 来自Redhat 7(科学Linux)的EPEL库的spyder

最后,我发现我需要一个额外的包,而不是作为一个要求。python matplotlib

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


啊啊啊

python.rb
是一个ruby脚本,它告诉homebrew在安装python时要做什么,所以这不适用于您。您得到的完整堆栈跟踪是什么,以及sitecustomize.py中有什么?
python-v
的输出也会有所帮助…当我在command.com中运行python-v时,它不会显示错误,当我尝试运行spyder-v(例如,在链接文件中添加-v)时,它根本不会启动。我现在已经在pythonshell中添加了-v参数,并且已经得到了“回溯”啊,所以问题只存在于spyder中的pythonshell小部件中,在运行普通pyhton解释器时不是这样。似乎它试图创建一些用于监视的网络连接。可能是防火墙阻止了连接?我按照carlos的指示检查了,但是127.0.0.1没有限制谢谢你的帮助!你知道如何让我的防火墙不那么严格吗?允许spyder.exe和python.exe通过并不能解决此错误。我认为您可以只允许从
127.0.0.1
localhost
进行连接,这意味着您允许程序在您的计算机内部创建连接(而不是到Internet)。向我的防火墙添加允许所有127.0.0.1连接的规则也没有帮助。好的,两个问题:a)你能在防火墙关闭的情况下运行Spyder吗?b) 你在用什么防火墙?(也许我可以在虚拟机上测试一下)。当我关闭防火墙时,仍然会出现错误。我使用的是windows防火墙,它内置于windows中/随windows附带。我看到您使用的是Python 3.3,因此出现错误可能是因为Python 2在处理端口方面存在细微差异。如果您的解决方案在一段时间后仍然有效,请在我们的问题跟踪程序中打开一个问题,这样我们就不会放弃