小编dre*_*cko的帖子

Tweepy 2.0 挂在 ssl do_handshake() 上

我有一个长期运行的 Twitter 抓取脚本,偶尔会挂起,堆栈跟踪以

"/usr/lib/python2.7/ssl.py", line 305: self._sslobj.do_handshake()
Run Code Online (Sandbox Code Playgroud)

我的问题是“为什么?” 和“我能做些什么来解决它?”。

在这种情况发生之前,它通常会持续一周左右。最后一次,处理tweepy挂起的 4 个线程中的 3 个(第四个正在等待来自挂起线程的信息)。奇怪的是,线程挂起之间有相当长的延迟:首先,线程调用api.followers_ids()挂起,然后大约 12 分钟后线程调用api.friends_ids()挂起,然后 1 小时 12 分钟后(!)线程调用api.search()挂起。在所有这些之间有许多 api 调用。

我在那里有一些代码可以在我发送QUIT信号时转储它的堆栈跟踪,并且我得到了类似以下内容的挂起线程。它们与(包括)第二个条目(tweepy/binder.py, line 185, in _call部分)完全相同。另外两个从tweepy/cursor.py, line 85 in next和到达那里tweepy/cursor.py, line 60, in next

  File "myTwitterScrapingScript.py", line 245, in checkStatus
    status = api.rate_limit_status()
  File "/scratch/bin/python-virtual-environments/tweepy-2/local/lib/python2.7/site-packages/tweepy/binder.py", line 185, in _call
    return method.execute()
  File "/scratch/bin/python-virtual-environments/tweepy-2/local/lib/python2.7/site-packages/tweepy/binder.py", line 146, in execute
    conn.request(self.method, url, headers=self.headers, body=self.post_data)
  File "/usr/lib/python2.7/httplib.py", …
Run Code Online (Sandbox Code Playgroud)

python ubuntu ssl tweepy

5
推荐指数
1
解决办法
1187
查看次数

ipython:我可以为 shell 命令提供输入吗

我可以执行需要在 ipython 和/或 ipython notebook 中输入的 shell 命令吗?

当我执行这样的命令时,我看到它是提示符,但没有明显的方法可以从我的键盘输入。

一个例子可能是rsync对远程服务器的命令(因此需要密码)。毫无疑问,这里存在安全方面的危险 - 在我的情况下,这些在我运行时有所减少localhost

shell ipython ipython-notebook

5
推荐指数
1
解决办法
3702
查看次数

python:重新导入模块的成本是多少?

我经常很想在狭窄的环境中导入需要的模块。例如在利用模块的功能体中。在这种情况下,import语句可能会执行多次。

除了样式问题之外,这样做的性能成本是多少?

python import

5
推荐指数
2
解决办法
2606
查看次数

如何选择sublime文本3中的下一个书签

有没有办法在SublimeText3中选择当前光标位置和下一个/上一个书签之间的文本?

shift键的组合不起作用:shiftF2转到上一个书签(即shift+ F2="转到下一个书签").shift选择"下一个书签"菜单项时按住也不起作用.

sublimetext sublimetext3

4
推荐指数
1
解决办法
1046
查看次数

Matplotlib hexbin log scale colorbar tick标签作为指数

当使用hexbin具有对数刻度颜色(bins="log")的matplotlib创建二维直方图时,颜色条显示指数而不是值:

带有对数刻度颜色的hexbin图

如何在上图中的x和y轴上显示值和指数刻度线?

python plot matplotlib histogram

4
推荐指数
1
解决办法
1217
查看次数

2to3-2.7和2to3-3.1有什么区别?

我的Ubuntu 12.04股票python安装有2个程序,用于将代码转换为Python 3.x:2to3-2.72to3-3.1.有什么不同?

python python-2to3 python-2.7 python-3.x ubuntu-12.04

3
推荐指数
1
解决办法
802
查看次数

如何在eclipse中安装jdk 7

我在我的mac上下载并安装了jdk7,并希望找到它的实际内容,以便我可以在eclipse中安装它./ System/Library/Java中没有与jdk 7相关的内容.

eclipse macos java-7

3
推荐指数
1
解决办法
3万
查看次数

openRefine - 过滤空单元格

我想调查某列为空的行.我将根据其他列中的值填充这些单元格,但我想确定哪些尚未完成.

如果我对该列进行过滤,那么在我输入内容之前它不会做任何事情 - 但我正在寻找的东西是什么......

我尝试了一些regexs一样^$,^\s*$^.{0}$,但没有行是选择对任何这些过滤器.

filter openrefine

3
推荐指数
1
解决办法
3107
查看次数

bash:循环中的管道输出似乎改变了循环内的范围 - 为什么?

我注意到,如果我管道循环的输出,bash for循环中的变量范围似乎会改变.

例如,g循环后此处仍保持更改:

$ g=bing; for f in foo; do g=fing; echo g in loop: $g; done; echo g after $g;
g in loop: fing
g after fing
Run Code Online (Sandbox Code Playgroud)

而在这里,循环中的变化被遗忘:

$ g=bing; for f in foo; do g=fing; echo g in loop: $g; done | cat; echo g after $g;
g in loop: fing
g after bing
Run Code Online (Sandbox Code Playgroud)

g管道接收器中的值也来自"外部"上下文:

$ g=bing; for f in foo; do g=fing; echo g in loop: $g; done | (cat; echo in pipe $g;); …
Run Code Online (Sandbox Code Playgroud)

bash scope loops pipe

3
推荐指数
1
解决办法
309
查看次数

如果py4j JVM正在运行,在python中测试的最佳方法是什么?

如果运行py4j的JVM正在侦听所选的(可能是默认的)套接字,那么测试(在python脚本中)的好方法是什么?有点聪明ping吗?

我可以尝试从我的Java类访问方法或对象并捕获生成的socket.error异常,但这似乎有点像黑客.

创建一个JavaGateway没有任何JVM可以与之通信的python 实例不会引发异常.我可能错过了一些东西,但我没有在文档中找到任何内容.

python java py4j

2
推荐指数
1
解决办法
2008
查看次数

在PyPlot中设置自动刻度间隔

当我用pyplot绘制图时,它会自动生成漂亮的宽刻度标记和标签。有没有简单的方法可以调整自动生成的标记之间的间距?例如,在默认刻度位置为的图中[2,4,6],在position处有刻度[2,3,4,5,6]

我知道我可以使用xticks()和设置标记位置和标签yticks(),但是我需要首先知道值的范围,对于不同的数据,我需要手动调整它们。

python matplotlib

2
推荐指数
1
解决办法
3837
查看次数