Sublime Text 3:Anaconda 包错误连接到 localhost 超时

Posted

技术标签:

【中文标题】Sublime Text 3:Anaconda 包错误连接到 localhost 超时【英文标题】:Sublime Text 3: Anaconda package error connection to localhost timed out 【发布时间】:2017-06-10 12:56:43 【问题描述】:

我在启动 sublime text 3 时收到一条奇怪的错误消息。

在启动时,我收到以下错误。

这是我系统的一些背景:

Windows 10

Sublime Text 3(通过 Sublime Text 包安装程序安装的 Anaconda 包)

来自 CMD:

C:\Users\joshu>where python
C:\cygwin64\bin\python
C:\Users\joshu\Anaconda3\python.exe

C:\Users\joshu>which python
/usr/bin/python

C:\Users\joshu>python --version
Python 3.5.2 :: Anaconda 4.2.0 (64-bit)

来自 sublime text 3 控制台:

sys.version
'3.3.6 (default, Sep 22 2016, 23:32:57) [MSC v.1600 64 bit (AMD64)]'

sys.path

['C:\\Users\\joshu\\AppData\\Roaming\\Sublime Text 3\\Installed Packages\\AutoPEP8.sublime-package\\sublimeautopep8lib\\packages_py3', 'C:\\Program Files\\Sublime Text 3', 'C:\\Program Files\\Sublime Text 3/python3.3.zip', 'C:\\Users\\joshu\\AppData\\Roaming\\Sublime Text 3\\Packages', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\pygments\\all', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\coverage\\ST3_WI~2', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\MARKUP~1\\all', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\PYTHON~1\\st3', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\PYTHON~2\\all', 'C:\\Users\\joshu\\AppData\\Roaming\\SUBLIM~1\\Packages\\mdpopups\\st3', 'C:\\Users\\joshu\\AppData\\Roaming\\Sublime Text 3\\Packages\\coverage\\st3_windows_x64']

第一个问题是我不知道如何“检查是否有Python进程在执行anaconda jsonserver.py脚本”。

但最终我不知道如何解决这个问题。

我要查看 anaconda 是否正常工作的“测试”是尝试导入 Numpy(这不起作用.. 未检测到模块)。

我确实将以下代码粘贴到 sublime text 3 控制台中.. 看起来没有发生任何事情:

import socket; socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect(("localhost", 59552))

【问题讨论】:

【参考方案1】:

在 Windows 10 的 SublimeText 3 中,我收到了同样的错误。

首选项 -> 包设置 -> Anaconda -> 设置 - 默认

我不得不将python_interpreter 的设置值从python 更改为我的anaconda 安装的python.exe 的路径。

在我的 Windows 10 上,它如下所示:

    "python_interpreter": "C:/ProgramData/Anaconda3/python.exe",

根据您安装 Anaconda 的位置,您的路径可能会有所不同。

执行此操作后,似乎所有的 linting 功能等都可以正常工作。不需要弄乱 JSON 服务器或忽略错误消息。

【讨论】:

【参考方案2】:

以下对我有用: 我将 python.exe 可执行路径添加到 Path 环境变量。

【讨论】:

【参考方案3】:

我在 OS X 上遇到了同样的问题,并且尝试了几乎所有可以在网络上找到的解决方案。该问题似乎与 json 服务器响应时间的延迟有关,因此当它超过 2 秒时您会收到错误。

有两种可能的解决方法:

第一种方法是增加超时时间:

更改/anaconda_lib/workers/local_worker.py中的第33行

来自

timeout = get_socket_timeout(0.2)

timeout = get_socket_timeout(1)

这应该可以帮助您在抛出错误之前多花一点时间来执行服务器检查。

第二种方法是更改​​ anaconda 日志文件的权限,以确保它归您的用户所有,如原始贡献者所述:

Anaconda 运行缓慢,jsonserver 崩溃

如果您使用的是 POSIX 系统(Linux 或 OS X),请查看所有者 anaconda 的 jsonserver 日志文件中,它们必须归您所有 用户或 jsonserver 将无法启动。日志文件可以 发现于:

GNU/Linux:~/.local/share/anaconda/logs

OS X:~/Library/Logs/anaconda

Windows:%APPDATA%\Anaconda\Logs

这就是我解决问题的方法:

1- 删除~/Library/Logs/anaconda 目录

2- 运行 sublime text 并打开一些 .py 文件,直到 anaconda 重新创建目录

3- 为您计算机上的每个用户(管理员、每个人等...)授予对该文件夹及其子目录的读/写权限

您很有可能必须时不时地重复上述步骤。这就是我在 anaconda 让我这样做之前自愿做的事情!

更新

我发现问题也可能是由 *** 连接引起的,所以每次连接和断开连接都会出现此错误。

【讨论】:

【参考方案4】:

在菜单中:

首选项 > 包设置 > Anaconda > 设置 - 用户

如果你的用户设置文件是空的,写:


    "swallow_startup_errors": true

然后保存。

如果您在此文件中已有其他用户设置,只需将其添加到其中

【讨论】:

虽然这个答案可能解决了这个问题,但它没有解释它如何或为什么这样做。 这是 Sublime Text 中的首选项。【参考方案5】:

只需在 sublime 3 控制台中输入:查看 -> 显示控制台

"导入套接字;socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect(("localhost", 50390))"

50390 是一个不同的数字。

【讨论】:

【参考方案6】:

我在我的 Mac 上遇到了这个问题。在终端上,我检查了 jsonserver.py 是否正在运行。

$ ps aux | grep jsonserver
user1         17170   0.0  0.0  4286488    856 s001  S+   10:51am   0:00.00 grep jsonserver.py
user1         14803   0.0  0.4  4358656  74252   ??  S    10:31am   0:06.30 python -B /path/to/jsonserver.py -p cxda 51380 -e /path/to/folders/,/path/to/other/folder/ 7973
user1         14787   0.0  0.2  4312684  26444   ??  S    10:31am   0:00.53 python -B /path/to/jsonserver.py -p cxda 51357 -e /path/to/folders/,/path/to/other/folder/ 7973

结果显示我有两个使用相同端口运行的 jsonserver。 所以我在 Sublime 中使用 command+shift+p 并搜索 Package Control: Disable Package 禁用了 anaconda。只需输入disa,它就会立即出现。

禁用包后,我杀死了这两个进程。

$ kill 14803
$ kill 14787
$ ps aux | grep jsonserver
user1         17220   0.0  0.0  4277272    840 s001  S+   10:52am   0:00.00 grep jsonserver.py

然后我使用 command+shift+p 在 sublime 中通过包控制启用包。启用包将启动一个新的 jsonserver.py。这为我解决了这个问题。

【讨论】:

【参考方案7】:

1。注意

我认为,这个问题可能是由我的回答中描述的其他原因引起的。您将需要其他解决方案。

但我的解决方案适合我个人。


2。回答

如果您不手动运行jsonserver.py,请不要在设置中设置"jsonserver_debug": true

如果 "jsonserver_debug": true, you need python -B anaconda_server/jsonserver.py -p test 9999 DEBUGAnaconda 文件夹中,Anaconda 工作正常。


3。示范

3.1。意外行为

如果 "jsonserver_debug": true:

如果我打开.py文件:

    Anaconda 不起作用(在示例中不是自动格式化文件)。

3.2.预期行为

如果 "jsonserver_debug": false:

Anaconda 成功自动格式化示例文件。


4。环境

我的环境,当我写这个答案时:

Windows 10 企业版 LTSB 64 位 EN, Sublime Text Build 3143 便携, Python 3.6.4,全局安装, Anaconda 2.1.25.

【讨论】:

【参考方案8】:

更新:我通过在 sublime text 下的 AppData 目录中搜索找到了 jsonserver.py 文件..

Sublime Text 控制台:

import sys
print(sys.path)

复制文件exploere中Sublime Text 3 Anaconda文件夹的路径,然后我搜索jsonserver.py

当我试图打开文件时,它会自行关闭。不知道这是好事还是坏事。

最终我删除然后重新安装了 Anaconda 包。这似乎解决了问题(尽管我不确定根本原因:/)

【讨论】:

这是一个已知问题,他们(截至本文撰写后 4 天)仍在处理 github.com/DamnWidget/anaconda/issues/527 另见 #514。

以上是关于Sublime Text 3:Anaconda 包错误连接到 localhost 超时的主要内容,如果未能解决你的问题,请参考以下文章

Sublime text 3搭建Python-Anaconda开发环境

如何忽略 Sublime Text 3 Anaconda 行的 lint 错误?

Sublime Text 3,有了Anaconda就会如虎添翼

用sublime text 3+anaconda插件搭建一个Python的IDE

Ubuntu16.04下安装sublime text3并配置anaconda插件

Sublime text3装入插件Anaconda