小编tar*_*ras的帖子

从PyQt事件循环内执行Python代码

我测试用的PyQt和我建立了一个GUI想使用被PyQt的事件循环开始后执行的Python代码(与GUI交互的能力app.exec_())。说这句话的另一种方式是,我想调用app.exec_立即返回,就好像gui是无模式的,随后是与gui交互的其他python代码。

我发现了在线程中运行PyQt循环的这个示例,但是不想做一些非常规的事情。有没有办法让PyQt消息循环继续处理消息,同时在exec_调用后还在主线程中执行python代码?

python events multithreading loops pyqt

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

python对象的sqlalchemy from_statement动态属性

我有这样的模型:

class Test(db.Model, UnicodeMixin):
    __tablename__ = 'test'

    id = db.Column(db.Integer, primary_key=True)

    subject = db.Column(db.String(512), nullable=False)

    additional = None

    def __unicode__(self):
        return u'<Test {0}>'.format(self.id)
Run Code Online (Sandbox Code Playgroud)

有些代码很难SELECT从db中使用其他动态数据来生成RAW SQL 。

例如,它像:

db.session.query(Test).from_statement("SELECT test.id AS test_id, test.subject AS test_subject, 99 AS additional FROM test").all()
Run Code Online (Sandbox Code Playgroud)

它生成python对象的列表Test,但是如何填充additional这些python对象的属性?

我不想在数据库中存储NULLadditional

我想用SQL创建动态附加数据并将其添加到python对象。

请帮忙。

谢谢。

python attributes sqlalchemy dynamic

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

lxml._ElementTree.getpath(element) 为非默认命名空间中的元素返回“*”而不是标签名称

请帮助getpath()getpath()xpath 中返回完整的标签名称或找到解决方法

我正在尝试为lxml.etree._ElementTree. ElementTree通过解析来自某些生产 WebService 的 600Kb 响应生成。

print elem.getroottree().getpath(elem)
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

'/S:Envelope/S:Body/ns5:getPhysicalResponse/*[18]/*[12]/*[6]/*[2]'
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法发布原始 xml - 它包含专有的客户信息。此外,我尝试使用自动生成的具有 100 个嵌套级别的简单元素树来重现此结果,每个级别有 100 个子级,但没有运气 -getpath()返回带有完整标签名称的 xpath。

更新 查看lxml 源代码- 它指向库中的tree.h xmlGetNodePath方法libxml2。所以这实际上是libxml2行为。

更新 做更多的测试,我发现每次标签具有非默认命名空间时都会发生这种情况。

c++ python xpath lxml libxml2

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

将元数据存储在pandas DataFrame的列标签中是一个好主意吗?

我一直在讨论是否应该有一个专门存放MetaData在熊猫中的地方DataFrame,我个人觉得这个功能非常有用.

在未来的版本中实现之前,我一直在寻找2个解决方法,但它们中没有一个看起来真的令人满意.

由于我不能继承一个类DataFrame,我试图创建一个MyDataFrame包含a DataFrame并实现所有方法的类__add__,__mul__但是,考虑到可用于操作DataFrame的方法数量,这似乎是一种乏味的方法.

此外,我操作的数据源自物理硬件(频谱分析仪,示波器......),原则上,我希望有一组与数据帧的每一列相关联的元数据(测量带宽,平均数......).需要编码以保持与DataFrame结构一一对应的结构看起来很复杂(如果DataFrame得到转置怎么办?)

我发现一个优雅的解决方案是使用自定义对象而不是通常的Series对象名称.这些"MetaIndex"基本上是一个字符串+元数据,它将取代通常的列标签my_dataframe.columns.类定义看起来像这样:

class MetaIndex:
    def __hash__(self):
        return self.str.__hash__()

    def __eq__(self,other):
        return self.str == str(other)

    def __init__(self,st):
        self.str = format_name(st)
        self._meta = MetaData()

    def __repr__(self):
        return self.str


    def __str__(self):
        return self.str
Run Code Online (Sandbox Code Playgroud)

然后,当我保存DataFrame(在hdf5文件中)时,我将其更改MetaIndex为常规字符串,并分别保存每个列的元数据,当我加载数据时,我重新实例化数据帧的列,例如:

s.replace_names_by_meta_index()
    for c in s.columns:
        col = s[c]
        if col.meta is not None:
            col.meta.set(**f["meta"][str(c)])
Run Code Online (Sandbox Code Playgroud)

1)您是否认为这是一种可行的方法,或者这是一种边际和危险的方法?

2)此外,一个非常诱人的扩展是使MetaIndex继承自str.这样,自动完成仍然适用于IPython(my_dataframe.col1).然而,在这种情况下,一些简单的操作,如my_dataframe.T.T使 …

python metadata pandas

5
推荐指数
0
解决办法
1138
查看次数

使用并行python时记录

我正在使用并行python executePipeline多次执行一个大函数().此功能也使用多处理(使用multiprocessing模块).
我使用并行python模块在我的控制台上正确显示日志消息时遇到了一些麻烦.当我不使用它时,日志消息很好地显示.

下面是它的工作原理.我有一个服务器每次从客户端收到请求时都会调用一个worker:

job = self.server.job_server.submit(func = executeWorker, args = (config, ) )
Run Code Online (Sandbox Code Playgroud)

每次有来自客户端的新请求时,都会从新线程执行此函数.然后,worker正在executePipeline使用多处理调用正在执行不同processus 的函数.

SocketServer.TCPServer我使用线程的服务器.我使用根记录器在服务器中设置了一个记录器:

self.logger = logging.getLogger()
self.logger.setLevel(logging.INFO)
self.logger.addHandler(logging.StreamHandler() 
self.job_server = pp.Server(ncpus = 8) # for test
self.jobs = []
Run Code Online (Sandbox Code Playgroud)

当我运行我的服务器时,我只能从而executePipeline不是从子进程获取日志记录.此外,我只在作业结束时才记录执行管道,而不是在运行时.

这里还有工人代码.在"Executing pipeline with worker number "很好地显示在我的终端

'''
Setup logging
'''

logger = logging.getLogger()
logger.setLevel(logging.INFO)  

# worker name
publicIP = socket.gethostbyname(socket.gethostname()) 
pid = os.getpid()
workerID = unicode(str(publicIP) + ":" + str(pid))

logger.info( "Executing pipeline with worker {}".format(workerID)) …
Run Code Online (Sandbox Code Playgroud)

python logging parallel-python

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

如何为Windows的Python包安装正确安装C编译器?

我相信我没有正确安装我的C编译器.我正在尝试在我的Windows 8机器上安装一些Python 2.7软件包.我一直收到以下错误:

RuntimeError:破坏的工具链:无法链接简单的C程序.

Python安装正确,并且定期运行良好.我一直在使用该virutalenv软件包并在虚拟环境中工作.然后我尝试安装Cygwin,MinGW和MS Visual Studios 2012,这些似乎都没有virtualenv.我不确定我做错了什么,任何帮助都会很棒.

谢谢你,吉米

c python windows virtualenv

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

PyAudio alsa 错误消息

每次使用 PyAudio 播放声音时,我都会收到错误消息,并且无法抑制它们。

ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave                                                                                     
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or …
Run Code Online (Sandbox Code Playgroud)

python audio pyaudio

5
推荐指数
0
解决办法
3199
查看次数

Pandas:df_left.merge(df_right) 摘要统计

对于 Pandas:df.merge()方法,是他们获取合并摘要统计信息(例如匹配数、不匹配数等)的便捷方法。我知道这些统计数据取决于标志how='inner',但是知道使用内部联接等时“丢弃”了多少内容会很方便。我可以简单地使用:

df = df_left.merge(df_right, on='common_column', how='inner')
set1 = set(df_left[common_column].unique())
set2 = set(df_right[common_column].unique())
set1.issubset(set2)   #True No Further Analysis Required
set2.issubset(set1)   #False
num_shared = len(set2.intersection(set1))
num_diff = len(set2.difference(set1))
# And So on ...
Run Code Online (Sandbox Code Playgroud)

但认为这可能已经实施了。我是否错过了它(即类似report=True会返回的合并new_dataframe以及报告系列或数据框)

python pandas

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

Flask API作为实时Kafka使用者

我想构建一个使用Flask框架开发的python API,该框架使用Kafka主题并将流推送到客户端(html页面或其他应用程序)。

我试图用虚拟数据生成实时流(请参见下面的实时路由)。发生的问题result是仅在循环完成后才推送result变量,而变量应在每次迭代时推送。

我还尝试通过Kafka连接生成实时流(请参见下面的kafka路由)。问题是没有数据返回,而是请求没有完成。

from flask import Response, Flask
import time
from kafka import KafkaConsumer

application = Flask(__name__)

@application.route('/')
def index():
    return "Hello, World!"


@application.route('/realtime/')
def realtime():

    def createGenerator():

        for i in range(1,10):
            yield str(i) + '\n'
            time.sleep(0.2)

    return Response(createGenerator())


@application.route('/kafka/')
def kafkaStream():
    consumer = KafkaConsumer(bootstrap_servers = 'serverlocation',
                     client_id = 'name of client',
                     auto_offset_reset = 'earliest',
                     value_deserializer = lambda m: json.loads(m.decode('ascii')))

    consumer.subscribe(topics=['my-topic'])

    def events():
        result = []
        for message in consumer:
           if message is not None: …
Run Code Online (Sandbox Code Playgroud)

python flask apache-kafka

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

有没有boto3 + MFA的例子?

我找到了boto + MFA的示例:

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sample-code.html

但是我找不到如何使用boto3的示例。任何等效的boto3示例?

谢谢!

python amazon-web-services boto3

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