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 DEBUG
在Anaconda
文件夹中,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