小编use*_*788的帖子

获取python项目使用的所有模块/包

我有一个python GUI应用程序.现在我需要知道应用程序链接到的所有库.这样我就可以检查所有库的许可证兼容性.

我已经尝试过使用strace,但是strace似乎报告了所有的包,即使它们没有被应用程序使用.

而且,我尝试了python ModuleFinder,但它只返回python2.7中的模块而不是链接的系统级包.

那么有什么方法可以获得从我的应用程序链接的所有库?

python linux pyinstaller strace

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

使用不同的glibc版本

目前我有不支持epoll的glibc,所以我安装了新的glibc非默认lation支持epoll.我有使用这个epoll的python程序.

我试着设置LD_LIBRARY_PATH

export LD_LIBRARY_PATH="/home/glibc/lib:$LD_LIBRARY_PATH"

然后我运行ls,它给了我错误

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam.so.0)

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam_misc.so.0)

当我试图运行python时,我得到了

python: relocation error: /home/glibc/lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

如何使用新安装的glibc而不是默认的?

python epoll glibc

8
推荐指数
1
解决办法
3275
查看次数

使用python,sqlite3和gtk的独立应用程序的MVC

我正在开发一个pygtk应用程序,我采用了MVC结构.但我不认为我在实现中遵循标准的MVC模式.

请建议我如何使用MVC来解决以下问题陈述.

我在我的应用程序中使用python,gtk,sqlite3

应用程序的问题陈述:
数据存在于日志文件中.它应该被提取并显示在GUI中.GUI可以有多个视图(如浏览器选项卡),显示从日志文件中提取的数据(用户可以从同一个数据库表创建多个视图).用户可以通过GUI视图过滤/搜索数据.过滤条件可能因视图而异.

使用MVC结构的当前实现:
当前,在GUI中,存在按钮"创建视图",其在点击时创建视图以显示提取的数据.从日志文件中提取数据(Controller提取数据)并将其添加到sqlite数据库(Model).获取sqlite数据库表中的数据并将其添加到gtk.Treemodel中,该gtk.Treemodel在gtk.Treeview(View)中显示它.每次用户单击"创建视图"时,Controller都会实例化View类并在GUI中创建新选项卡.

我创建了三个类Model,View和Controller来实现这一目标.Controller实例化Model和View.应用程序在运行时,实例化继续等待GUI事件的Controller(单击"Create View"等...使用gtk主循环)

在这里,我需要一些帮助!
我已经读过,在MVC中,如果模型(数据库)被更改,视图也会被更改,反之亦然.是否可以使用sqlite3和gtk.Treeview实现相同的目标.

简而言之,我的问题是:

  1. 如何在从数据库中提取数据时更新我的​​应用程序GUI?在MVC示例中,有一些Observer类在模型更改时调用回调函数.如何针对上述问题陈述编写相同的内容?
  2. 无论如何我可以将sqlite3数据库设置为gtk.Treeview的treemodel,这样如果有任何行插入到数据库表中,它会在树视图中更新吗?
  3. 有没有使用MVC架构并使用python,gtk,sqlite构建的示例?

python gtk model-view-controller pygtk

7
推荐指数
1
解决办法
1107
查看次数

安装低版本的 GLIBC 并运行 pyinstaller

我正在尝试创建 PyGTK 应用程序的可执行文件。但是我在客户端机器上运行可执行文件时遇到了 Glibc 版本冲突。(因为 glibc(2.5) 的版本在客户端机器上低于 glibc(2.13) 的版本,其中创建了 pyinstaller 可执行文件。)

所以我想知道

是否可以在已经运行高版本 GLIBC 的机器上单独安装低版本的 GLIBC(保留多个 GLIBC 副本)?

有什么方法可以告诉 pyinstaller 在创建可执行文件时选择 GLIBC 的版本吗?

如果以上是可能的,那么如何实现这一目标?

提前致谢,

python ubuntu glibc pyinstaller

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

在Python中定义变量(宏)

我在我的一个项目中使用python,我想在C中定义一些像#define这样的变量,这样如果我想改变它,我只能在一个地方改变它.

我知道我们可以使用全局变量.但是,我不想在我使用变量的所有函数中指定关键字"global".

其实我想要这样的东西.(这只是一个随机的例子!)

DEFINE_MAX = 100

def function1(num):
    return num < DEFINE_MAX

def function2(num):
    return num > DEFINE_MAX
Run Code Online (Sandbox Code Playgroud)

变量DEFINE_MAX可能会在整个应用程序中使用.所以我想在一个共同的地方定义它.

那我怎么能在python中做到这一点?

python

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

添加不同长度的列到gtk TreeStore(Treeview)

我想使用gtk Treeview显示两级分层数据(使用模型gtk Treestore)

数据采用以下格式:

**First(parent)** level
col_a, col_b, col_c, col_d, col_e
val_a, val_b, val_c, val_d, val_e

**Second(child)** level
col_x, col_y, col_z
val_x, val_y, val_z
Run Code Online (Sandbox Code Playgroud)

数据层次结构如下:

> val_a1, val_b1, val_c1, val_d1, val_e1
       val_x1, val_y1, val_z1
       val_x2, val_y2, val_z2

> val_a2, val_b2, val_c2, val_s2, val_e2
       val_x3, val_y3, val_z3

> val_a3, val_b3, val_c3, val_d3, val_e3

> val_a4, val_b4, val_c4, val_d4, val_e4
       val_x4, val_y4, val_z4
       val_x5, val_y5, val_z5
Run Code Online (Sandbox Code Playgroud)

以下pygtk代码是我尝试过的(修改了gtk教程中的代码)

import pygtk
pygtk.require('2.0')
import gtk

data = [
    [('val_a1', 'val_b1', 'val_c1', 'val_d1', 'val_e1'), ('val_x1', 'val_y1', …
Run Code Online (Sandbox Code Playgroud)

python gtk treeview pygtk

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