我实际上是将旧的django应用程序从python2.7升级到python3.4.通过pip安装pygobject时出现此错误:
Collecting pygobject
Using cached pygobject-2.28.3.tar.bz2
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-9dp0wn96/pygobject/setup.py", line 272
raise SystemExit, 'ERROR: Nothing to do, gio could not be found and is essential.'
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-9dp0wn96/pygobject
Run Code Online (Sandbox Code Playgroud)
我试图在virtualenv中安装它.系统范围的安装也不起作用......我正在使用python3.4在arch linux上工作
我已经安装了名为pygobject-devel 3.16.2-1的arch包但我还是无法导入gobject python模块
这个该死的gio是什么?
欢迎任何帮助...... Thanx提前!
我已经设法安装了meld 3.14.2和所有依赖包,通过从源代码编译每个包,并且所有包安装在NFS共享上,--prefix=<base>/meld用于meld工具&& --prefix=<base>/meld/deps用于依赖项.
最后,我调用了该工具,我可以看到GUI.但是,当我尝试进行一些功能测试时,它会引发我的错误.我从未使用过该工具.所以,我不知道它应该如何正常工作.但是用户已经指出了以下错误,我猜也可能存在许多其他错误.但以下是其中之一.
$meld
GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.
II 1
Traceback (most recent call last):
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/newdifftab.py", line 117, in on_button_compare_clicked
tab = self.diff_methods[self.diff_type](compare_paths)
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/meldwindow.py", line 647, in append_filediff
doc = filediff.FileDiff(len(files))
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/filediff.py", line 281, in __init__
from meld.gutterrendererchunk import GutterRendererChunkAction
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 33, in <module>
class GutterRendererChunkAction(GtkSource.GutterRendererPixbuf):
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 38, in GutterRendererChunkAction
MODE_REPLACE: load("meld-change-apply-right"),
File "/applics/platform/meld/meld-3.14.2/lib/python2.7/site-packages/meld/gutterrendererchunk.py", line 30, …Run Code Online (Sandbox Code Playgroud) 我想创建一个服务器和客户端应用程序,使用GIO通过套接字进行通信.GSocketService和GSocketClient看起来很适合这个目的,但不幸的是我找不到一些教程或示例代码(GLib,GIO,...新手可以理解).有人知道一些好的资源或者可以在这里发布示例代码吗?
如果GSettings模式存在且已编译,则从中读取通常没有问题.但是,如果它不存在,通常会抛出一个无法处理的错误.在Python文件或控制台中尝试:
from gi.repository import Gio
try:
settings = Gio.Settings("com.example.doesnotexist")
except:
print "Couldn't load those settings!"
Run Code Online (Sandbox Code Playgroud)
我正在尽可能广泛地使用except,但这是抛出的错误.
(进程:10248):GLib-GIO-ERROR**:未安装设置架构'com.example.doesnotexist'
我基本上想要做的是找出com.example.doesnotexist架构是否存在; 如果没有,那么告诉用户在使用我的应用程序之前运行我的安装脚本.关于这样做的任何其他建议都是受欢迎的.
我只是试图运行一个vala bluez示例(在DbusClientSamples页面中找到)并且我收到此错误:
GDBus.Error:org.freedesktop.DBus.Error.UnknownObject:
Method "DiscoverDevices" with signature "" on interface "org.bluez.Adapter"
doesn't exist
Run Code Online (Sandbox Code Playgroud)
该示例是否使用了弃用的API?如果是,我在哪里可以找到有关bluez的DBUS API的更新文档?我找到的所有文件(通过谷歌搜索)都包含该DiscoverDevices方法,所以我很困惑.
使用 GNOME 3.22.2 运行 CentOS 7,我正在尝试编写一个 Ansible 剧本,将图标从 /usr/share/applications 复制到预定义用户的桌面,然后授予可信权限(使用gio set "metadata::trusted" yes)。
当我尝试使用终端会话查看桌面图标的可写属性时gio info -w /home/demo/Desktop/google-chrome.desktop,我得到以下结果:
Settable attributes:
standard::symlink-target (bytestring)
time::access (uint64, Keep with file when moved)
time::access-usec (uint32, Keep with file when moved)
time::modified (uint64, Copy with file, Keep with file when moved)
time::modified-usec (uint32, Copy with file, Keep with file when moved)
unix::gid (uint32, Keep with file when moved)
unix::mode (uint32, Copy with file, Keep with file when moved)
unix::uid (uint32, Keep with …Run Code Online (Sandbox Code Playgroud) 我试图通过gio的Python绑定创建一个简单的命令行客户端来访问共享(是的,主要要求是使用gio).
我可以看到,与它的前身gnome-vfs相比,它提供了一些方法来进行身份验证(子类化MountOperation),甚至一些非常特定于samba共享的方法,比如set_domain().
但是我坚持使用这段代码:
import gio
fh = gio.File("smb://server_name/")
Run Code Online (Sandbox Code Playgroud)
如果该服务器需要身份验证,我认为fh.mount_enclosing_volume()需要调用,因为此方法将a MountOperation作为参数.问题是调用此方法什么都不做,fh.enumerate_children()下一步的逻辑(列出可用共享)失败.
任何人都可以提供一个如何用gio完成这个工作的例子?
我正在尝试创建一个Python插件,它将设置Rhythmbox 2.96中当前正在播放的歌曲的评级.似乎Rhythmbox 2.96不允许您使用API(Python模块)来设置歌曲的评级; 球员相关的行动已被取消,有利于MPRIS.
然后我尝试使用dbus与MPRIS,但MPRIS也没有设置歌曲评级的规范.经过大量挖掘后,我在Rhythmbox代码库中找到了这个样本并将其改编成测试脚本.
它有效,但SetEntryProperties方法导致Rhythmbox冻结约30秒.这是Python脚本.
说明:
将代码复制到名为rate.py的文件中
使用终端从终端启动rhythmbox
rhythmbox -D rate
Run Code Online (Sandbox Code Playgroud)在Rhythmbox中,从插件启用Python控制台
启动Python控制台并运行
execfile('/path/to/rate.py')
Run Code Online (Sandbox Code Playgroud)您将在终端中看到打印输出,Rhythmbox会冻结约20-30秒.
# rhythmbox -D rate
# Rhythmbox: Edit > Plugins > Python Console enabled
# Play a song
# Open Rhythmbox Python Console
# execfile('/path/to/rate.py')
import sys
import rb
from gi.repository import Gtk, Gdk
def rateThread(rating):
try:
currentSongURI = shell.props.shell_player.get_playing_entry().get_playback_uri()
print "Setting rating for " + currentSongURI
from gi.repository import GLib, Gio
bus_type = Gio.BusType.SESSION
flags = 0
iface_info = None
print "Get …Run Code Online (Sandbox Code Playgroud) 我正在为 Rhythmbox 开发一个 python 插件 - 它包含一个 GtkScrolledWindow 和一个子级 GtkIconView。IconView 由 Gtk.TreeModel 提供。
它看起来像这样:

目前,每个图标都是为树模型中的每一行绘制的,效率有些低下 - 每个图标都是来自文件的 GdkPixbuf。如果您有数千行,则可能需要相当长的时间才能使用每个图片图标完全更新整个图标视图。
我想要实现的是仅更新当前绘图区域中的图标 - 当用户滚动并释放滚动条(或通过键盘导航)时,新绘图区域中的图标应使用相关图片进行更新。
注意 - 此时树模型将完全填充 - 只有图标不会被加载。
这并不是我的专业领域 - 我正在寻找实现上述目标的最佳方法的指导。
具体来说 - 可以暴露哪些 Gtk+3 绘图区域信号(Gtk.ScrolledWindow / Gtk.IconView?)来编写 python 代码来计算应该更新哪些图标?
不使用AT命令我们如何获得3g调制解调器的信号强度?NetworkManager的gdbus对象没有任何方法getSignalStrength.网络管理器锁定设备文件,阻止使用AT命令.
nm-applet能够在系统托盘中显示信号强度.所以应该有办法从网络管理员那里获得信号强度!
nmcli是nm-applet的命令行计数器部分.我可以使用信号强度nmcli吗?其手册页中没有提到信号强度.