相关疑难解决方法(0)

Emacs/Python:在行缓冲与块缓冲模式下运行python-shell

这里的相关问题和答案中,有人假设emacs(23.2)中的python-shell是块缓冲而不是行缓冲.建议修复是将sys.stdout.flush()添加到我的脚本中的位置,我希望stdio将其内容刷新到python-shell.

有没有办法欺骗python-shell(在Windows上的emacs 23.2中运行,而不是在Linux上运行)a)认为它附加到TTY或b)使用行缓冲而不是块缓冲模式?我不明白为什么我能在IDLE中执行此操作但不能在emacs中执行此操作.

我宁愿自定义emacs而不是在我的脚本中添加sys.stdout.flush().叫我懒惰:-).

谢谢,

麦克风

python emacs output-buffering

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

如何记录Python崩溃?

我在覆盆子Pi中运行python代码.代码应该永远持续下去.然而,几个小时后它崩溃了.由于它在远程计算机上运行,​​因此无法在崩溃期间看到它给出的消息.

如何将此消息存储在文件中,以便我可以看到问题是什么?这是在linux中自动完成的吗?或者我应该写一些函数来在崩溃期间导出错误.我怎样才能做到这一点?

python

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

为什么`print`内容不能在终端中立即显示?

我有一个用于仿真的python脚本,一个for循环要花很长时间,每个循环要花不同的时间,因此我.在每个循环后打印一个,以监视它运行的速度和经过的时间。for脚本运行时的声明。

for something:
    do something
    print '.',
Run Code Online (Sandbox Code Playgroud)

但是,当我在终端中的iPython中运行脚本时,点并不会一一打印,而是在循环结束时一次打印所有点,这使整个过程变得毫无意义。如何在运行时内联打印点?

python macos terminal ipython

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

为什么time()低于0.25会在Python中跳过动画?

此代码按预期工作.输出:

Loading 
Loading.
Loading..
Loading...
Run Code Online (Sandbox Code Playgroud)

码:

done = False
count = 0

while not done:
    print '{0}\r'.format("Loading"),
    time.sleep(0.25)
    print '{0}\r'.format("Loading."),
    time.sleep(0.25)
    print '{0}\r'.format("Loading.."),
    time.sleep(0.25)
    print '{0}\r'.format("Loading..."),
    time.sleep(0.25)
    count += 1
    if count == 5:
        done = True
Run Code Online (Sandbox Code Playgroud)

而这段代码没有.输出:

Loading.
Loading...
Run Code Online (Sandbox Code Playgroud)

码:

done = False
count = 0

while not done:
    print '{0}\r'.format("Loading"),
    time.sleep(0.125)
    print '{0}\r'.format("Loading."),
    time.sleep(0.125)
    print '{0}\r'.format("Loading.."),
    time.sleep(0.125)
    print '{0}\r'.format("Loading..."),
    time.sleep(0.125)
    count += 1
    if count == 5:
        done = True
Run Code Online (Sandbox Code Playgroud)

为什么时间函数似乎跳过每一个print语句,如果它低于0.25?

python time stdout python-2.7

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

Django - 持续发送输出

我想从django视图开始处理一些文件,我希望能够在处理时将文件名发送到浏览器.有没有办法(轻松)这样做?我可以使用线程和ajax调用来做到这一点,但我现在想要最简单的解决方案.

django

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

python中的基本终端仿真

我一直在尝试编写一个基本的终端仿真脚本,因为出于某种原因我的mac上没有终端访问权限.但是要在搅拌机中编写游戏引擎脚本,控制台通常在你开始使用的终端中打开,这是至关重要的.
只是做一些简单的事情,比如删除,重命名等等.我曾经使用stream = os.popen(command)然后执行命令print (stream.read()).这适用于大多数事情,但不适用于任何互动.
不久我发现了一种新的方式:
sp = subprocess.Popen(["/bin/bash", "-i"], stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.PIPE)然后print(sp.communicate(command.encode())).这应该会产生一个我可以像终端一样使用的交互式shell,不管它吗?

但无论哪种方式,我都无法保持连接打开,并使用最后一个例子,我可以调用sp.communicate一次,给我以下输出(在这种情况下为'ls /')和一些错误:
(b'Applications\n[...]usr\nvar\n', b'bash: no job control in this shell\nbash-3.2$ ls /\nbash-3.2$ exit\n').第二次它给了我一个ValueError: I/O operation on closed file. 有时(比如'ls')我只得到这个错误:b'ls\nbash-3.2$ exit\n'.

那是什么意思?如何使用python模拟终端,允许我控制交互式shell或运行blender并与控制台通信?

python shell terminal blender

4
推荐指数
2
解决办法
5716
查看次数

从__future__需要Python 3.4版本的print()

目前,当我

from __future__ import print_function

从Python 2.7.6开始,我显然在添加flush关键字参数之前得到了print()版本,根据文档在Python 3.3中进行了操作.我的系统(Ubuntu)中安装的Python3是Python 3.4,我验证了它的print()函数有flush参数.

如何print()从3.4 导入功能?从哪里__future__获得较旧的打印功能?

python printing flush python-2.7 python-3.x

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

Python多久切换一次线程?

在cPython(默认的Python实现)中,线程切换的频率是多少?这不是关于使用多核的问题; 我知道GIL,并意识到只有一个线程会在时间运行.

我已经看到一些情况,我按顺序有两条日志消息,第一条日志消息将被发出,但第二条消息不会被发出几秒钟.这可能是因为Python决定在两个日志语句之间切换线程.这让我相信Python每隔几秒就会在线程之间切换一次,这比我预期的要慢得多.它是否正确?

python multithreading

4
推荐指数
2
解决办法
2676
查看次数

Docker 容器仅在退出时打印输出

我写了一个 python 程序及其 Dockerfile:

import time
print("Begin")
time.sleep(100);
print("End")
Run Code Online (Sandbox Code Playgroud)

创建了它的图像,并使用它运行docker run <image-id>,令我惊讶的行为是,在控制台中发出运行命令后,它等待 sleep(100) 秒并一起打印"Begin""End"

为什么我们在运行时得不到中间结果?

另外,如果它不会在生成后立即发送数据,我该如何以这种方式编写流应用程序(在卡夫卡等中)?

python python-3.x docker

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

带有tweepy的流式传输api仅返回最后一条推文,而不是最后一条推文

我不仅是python的新手,而是完全编程所以我非常感谢你的帮助!

我试图使用Tweepy过滤来自twitter流API的所有推文.

我已按用户ID进行过滤,并确认正在实时收集推文.

然而,似乎只有第二张最后一条推文是实时收集而不是最新的推文.

你们能帮忙吗?

import tweepy
import webbrowser
import time
import sys

consumer_key = 'xyz'
consumer_secret = 'zyx'


## Getting access key and secret
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth_url = auth.get_authorization_url()
print 'From your browser, please click AUTHORIZE APP and then copy the unique PIN: ' 
webbrowser.open(auth_url)
verifier = raw_input('PIN: ').strip()
auth.get_access_token(verifier)
access_key = auth.access_token.key
access_secret = auth.access_token.secret


## Authorizing account privileges
auth.set_access_token(access_key, access_secret)


## Get the local time
localtime = time.asctime( time.localtime(time.time()) )


## Status …
Run Code Online (Sandbox Code Playgroud)

python twitter streaming tweepy

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