小编vir*_*tor的帖子

在gdb中加载python支持

我在gdb中使用特定于python的命令时遇到了问题。我已经包括了一般的python支持:

(gdb) python print(True)
True
Run Code Online (Sandbox Code Playgroud)

我已经安装了标准脚本:

$ ls /usr/share/gdb/python/gdb/
command  FrameDecorator.py  FrameIterator.py  frames.py  function  __init__.py  printer  printing.py  prompt.py  __pycache__  types.py  unwinder.py  xmethod.py
Run Code Online (Sandbox Code Playgroud)

我确保可以使用所有路径启用加载:

$ cat ~/.gdbinit 
add-auto-load-safe-path /usr/share/gdb/python/gdb/
add-auto-load-safe-path /usr/share/gdb/python/
add-auto-load-safe-path /usr/share/gdb/
set auto-load python-scripts on
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,gdb仍然不喜欢这样:

(gdb) info auto-load 
gdb-scripts:  No auto-load scripts.
guile-scripts:  No auto-load scripts.
libthread-db:  No auto-loaded libthread-db.
local-gdbinit:  Local .gdbinit file was not found.
python-scripts:  No auto-load scripts.
Run Code Online (Sandbox Code Playgroud)

我想py-bt在加载后使命令正常工作gdb

python linux gdb archlinux

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

如何捕获Gtk.TreeView中的点击?

我正在尝试捕获TreeView的空白区域中的双击事件以创建新节点.不幸的是,标准方法不起作用.我尝试将ButtonPressEvent附加到TreeView和托管电视的ScrolledWindow.我没有得到任何回调我的功能.

我怎么解决这个问题?

c# gtk gtk# gtktreeview

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

防止创建conffiles

我正在尝试构建一个包含一些/etc不是配置文件的包.conffiles即使我package.conffilesdebian目录中创建一个空,它们也会自动包含在内.

我怎么能停止dh_installdeb这样做?

configuration debian packaging debhelper

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

如何重用/克隆sqlalchemy查询

在我看来,通过创建表达式树的整个过程,然后再次创建一个查询是使用sqlalchemy时浪费的时间.除了偶尔的动态查询之外,在应用程序的整个生命周期中几乎所有内容都是完全相同的(除了参数当然).

有没有办法在创建查询后保存查询并在以后使用不同的参数重新使用它?或者也许有一些内部机制已经做了类似的事情?

python caching sqlalchemy

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

从压缩结构获取原始字节

我有一个看起来像这样的结构:

#[repr(packed)]
struct Header {
    some: u8,
    thing: u8,
}
Run Code Online (Sandbox Code Playgroud)

如何从中获取原始字节,我可以用于C库或套接字交互?

我希望用来transmute解决问题,但遗憾的是这不起作用:

let header = Header {....}
let header_bytes: &[u8] = unsafe { mem::transmute(header) };
let result = self.socket.write(header_bytes);
Run Code Online (Sandbox Code Playgroud)

这失败了

error: transmute called on types with different sizes: &Header (64 bits) to &[u8] (128 bits)
Run Code Online (Sandbox Code Playgroud)

serialization rust

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

在熊猫数据框中解析/拆分 URL 的 Pythonic 方法

我有一个 df,在标有 url 的列中,对于不同的用户,它有数千个链接,如下所示:

https://www.google.com/something
https://mail.google.com/anohtersomething
https://calendar.google.com/somethingelse
https://www.amazon.com/yetanotherthing
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

import urlparse

df['domain'] = ''
df['protocol'] = ''
df['domain'] = ''
df['path'] = ''
df['query'] = ''
df['fragment'] = ''
unique_urls = df.url.unique()
l = len(unique_urls)
i=0
for url in unique_urls:
    i+=1
    print "\r%d / %d" %(i, l),
    split = urlparse.urlsplit(url)
    row_index = df.url == url
    df.loc[row_index, 'protocol'] = split.scheme
    df.loc[row_index, 'domain'] = split.netloc
    df.loc[row_index, 'path'] = split.path
    df.loc[row_index, 'query'] = split.query
    df.loc[row_index, 'fragment'] = split.fragment
Run Code Online (Sandbox Code Playgroud)

该代码能够正确解析和拆分 url,但速度很慢,因为我正在迭代 df 的每一行。有没有更有效的方法来解析 URL?

python urlparse pandas

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

两个文件之间的交集

我是编程新手,我正在尝试找到两个文本文件的交集。

file1.txt
a a
a b
a a
a c

file2.txt
a a
Run Code Online (Sandbox Code Playgroud)

我想得到下面的结果file1(其中的file2file1

a a
a a
Run Code Online (Sandbox Code Playgroud)

我尝试grep在 Linux 中使用命令,但我不知道该怎么做。

linux

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

perl在退出时挂起(关闭文件句柄后)

我有一个功能(简而言之):

my $file = IO::File->new("| some_command >> /dev/null 2>&1") 
    or die "cannot open some_command for writing: $!\n";
...
undef $file;
Run Code Online (Sandbox Code Playgroud)

现在我甚至都没有写任何东西$file.目前根本没有其他操作$file.当我运行该程序时,它无法正常退出.我看到句柄已关闭,但我的程序仍在等待关闭进程.捕获strace:

close(6)                                = 0
rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
wait4(16861, ^C <unfinished ...>
Run Code Online (Sandbox Code Playgroud)

如果我打开相同的阅读过程,我不会看到这个问题.

要使程序退出,我该怎么办?

编辑:到目前为止的建议是使用Expect库或通过ctrl + d完成输入流.但是我现在不想以任何方式与该程序进行交互.我希望它现在完全没有任何更多的IO继续完成.那可能吗?

linux perl ipc pipe process

3
推荐指数
2
解决办法
2864
查看次数

合并git分支而不移动分支指针

我正在寻找一种解决方案,将功能分支应用到 git 中的开发分支,而无需实际移动分支指针。本质上,我想从功能分支创建一个提交,并确保它以某种方式指向原始分支(在日志中提及可能就足够了)。

我知道堆叠的 git 应该提供类似的东西,尽管这会为我宁愿避免的标准工作流程引入新的命令。

我想要实现的是某种功能管理,它允许我们应用/删除整个功能,同时保持补丁分支本身的可见性。如果我确实合并了分支,则大多数尝试区分更改的命令都不会执行我想要的操作,因为该分支已经合并到开发中。

我无法真正遵循上游 - 有时通过获取新标签并仅重新应用需要的功能而不是解决冲突和恢复冗余功能来更容易纠正并发更改 - 所以这种工作方式是不可能的。另一方面,我确实希望看到更改,以便我可以对其进行修改以匹配新版本,或者稍后向上游提交。

git

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

Scipy标准偏差

我正在尝试计算某些分布的标准差,并从两条路径中获得两个不同的结果.这对我来说没有多大意义 - 有人可以解释为什么会这样吗?

scipy.stats.binom(189, 100/189).std()
6.8622115305451707

scipy.stats.tstd([1]*100 + [0]*89)
0.50047821327986164
Run Code Online (Sandbox Code Playgroud)

为什么这两个数字不相等?

python scipy

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