我有一个python GUI应用程序.现在我需要知道应用程序链接到的所有库.这样我就可以检查所有库的许可证兼容性.
我已经尝试过使用strace,但是strace似乎报告了所有的包,即使它们没有被应用程序使用.
而且,我尝试了python ModuleFinder,但它只返回python2.7中的模块而不是链接的系统级包.
那么有什么方法可以获得从我的应用程序链接的所有库?
目前我有不支持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而不是默认的?
我正在开发一个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实现相同的目标.
简而言之,我的问题是:
我正在尝试创建 PyGTK 应用程序的可执行文件。但是我在客户端机器上运行可执行文件时遇到了 Glibc 版本冲突。(因为 glibc(2.5) 的版本在客户端机器上低于 glibc(2.13) 的版本,其中创建了 pyinstaller 可执行文件。)
所以我想知道
是否可以在已经运行高版本 GLIBC 的机器上单独安装低版本的 GLIBC(保留多个 GLIBC 副本)?
有什么方法可以告诉 pyinstaller 在创建可执行文件时选择 GLIBC 的版本吗?
如果以上是可能的,那么如何实现这一目标?
提前致谢,
我在我的一个项目中使用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中做到这一点?
我想使用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)