标签: python

从 python 线程更新 appindicators 标签不起作用

我是 Python 和 GUI 编程的新手。我试图通过做一个小应用程序来学习两者。在我的应用程序中,后台进程应该始终运行并通过 appindicator 显示用户的一些虚构配额。这是我的代码:

#!/usr/bin/env python

import pyjsonrpc
from gi.repository import Gtk
from gi.repository import AppIndicator3 as appindicator
import thread
import glib

ind = None

def start_gtk_main():
    ind = appindicator.Indicator.new(
                                  "example-simple-client",
                                  "indicator-messages",
                                  appindicator.IndicatorCategory.APPLICATION_STATUS)

    ind.set_status (appindicator.IndicatorStatus.ACTIVE)
    ind.set_label('NA', '')

    menu = Gtk.Menu()
    menu_quit = Gtk.MenuItem("Quit")
    menu_quit.connect("activate", quit_app)
    menu.append(menu_quit)
    menu_quit.show()

    ind.set_menu(menu)

    try:
        thread.start_new_thread(update_ind_label, ())
    except:
        print "Error: unable to start thread"

    Gtk.main()

def quit_app(self):
    Gtk.main_quit()

def update_ind_label():
    value = glib.timeout_add_seconds(5, handler_timeout)

def handler_timeout():
    url = "http://localhost/jsonrpc-server/"
    http_client = pyjsonrpc.HttpClient(url)
    response …
Run Code Online (Sandbox Code Playgroud)

indicator python

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

easy_install 和 pip 包去哪儿了?

我编写了一个 Bash 脚本,它可以在我的 Ubuntu 14.04 LTS 笔记本电脑上自动安装基于ERPNext 3.6.1*的应用程序。

脚本的一部分使用 安装所需的依赖项apt-get install,其中包括pipeasy_install。该脚本几天前运行良好,但现在当我尝试运行它时,此步骤失败并apt-get在终端中显示以下错误消息:

Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package easy_install
E: Unable to locate package pip
Run Code Online (Sandbox Code Playgroud)

我也无法在 Ubuntu 软件中心找到这些软件包,尽管我的系统上仍然安装了这些命令(见下文),并且在 Ubuntu 软件中心中搜索任何一个都会返回已安装的软件包python-pip作为第一个结果。

我还运行了以下命令来尝试找出哪个包拥有已安装的命令:

christopher@SkyTemple:~$ whereis easy_install
easy_install: /usr/local/bin/easy_install
christopher@SkyTemple:~$ dpkg -S /usr/local/bin/easy_install
dpkg-query: no path found matching pattern /usr/local/bin/easy_install
christopher@SkyTemple:~$ whereis pip
pip: /usr/bin/pip /usr/bin/X11/pip /usr/local/bin/pip /usr/local/bin/pip2.7 /usr/share/man/man1/pip.1.gz
christopher@SkyTemple:~$ dpkg -S /usr/bin/pip
python-pip: /usr/bin/pip …
Run Code Online (Sandbox Code Playgroud)

package-management python software-installation

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

无法使用 Python 支持编译 GDB7.8

我正在尝试安装支持 Python 的 GDB7.8。从源文件夹中,我正在运行./configure --with-python 当我从 --with- 执行 tab-complete 时,我没有在列表中看到 Python。但是当我用那个标志运行 configure 时,它​​并没有阻止。

当我运行 make 时,它​​抱怨找不到 Python。

checking for python2.7... no
Run Code Online (Sandbox Code Playgroud)

但是安装了 Python:

 $ which python
python                python2.7             python2.7-dbg-config
python2               python2.7-dbg 

$ which python2.7 
/usr/bin/python2.7
Run Code Online (Sandbox Code Playgroud)

我在没有 --with-python 的情况下编译了 GDB,并且安装的东西没有错误。我的印象是 GDB7.8 无需特殊标志即可支持 Python。但是当我运行时:

$gdb python
(gdb) run test.py
Run Code Online (Sandbox Code Playgroud)

我得到某种无法导入 gdb 导入错误

然后我尝试调用“pi”:

(gdb) pi printf.py
Python scripting is not supported in this copy of GDB.
Run Code Online (Sandbox Code Playgroud)

那么...如何在 GDB7.8 中获得 Python 支持?它实际上不支持吗?或者我不应该叫“pi”?

python gdb

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

从 youtube 流式传输音频

我只想流式传输(无需下载)YouTube 视频。有没有一种简单的方法可以用 python 来做到这一点,或者存在一个脚本来做到这一点?或者我必须在临时文件中下载视频,转换并播放?

python youtube streaming

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

从 python 启动查找器

我希望在终端中输入一个子文件夹名称,并让脚本在 finder 中启动它。这是我的代码:

import sys
import os

fullname='/home/ash/caffe/examples/imagenet/train_rest/'+str(sys.argv[1])

os.system(gnome-open fullname)
Run Code Online (Sandbox Code Playgroud)

然而,'gnome-open' 似乎只接受传统 /path/to/file 格式的路径。有没有办法解决这个问题?提前致谢!

python python-2.7 14.04

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

按名称杀死进程

我有 python http 服务器。操作系统 - ubuntu 服务器 12.04。有时我需要杀死所有 python http 进程。我用这个命令

sudo killall python
Run Code Online (Sandbox Code Playgroud)

但它会杀死所有 python 进程。是否可以杀死名称为“python server.py”的所有进程?

server python 12.04

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

使 Python 程序从其图标可执行

我希望通过单击图标在窗口中执行 python 程序。

这是自学和编码类型和 Ubuntu 的第一天,因此我们感谢过度解释和额外的细节。

我正在使用的代码示例

print("Game Over")
input("\n\nPress the enter key to exit")
Run Code Online (Sandbox Code Playgroud)

在 IDLE 中运行正常,但是当我单击 .py 文件图标时,它会打开一个编辑器而不是程序/窗口

到目前为止我已经完成的步骤

  • 右键单击 .py 文件并将权限设置为“允许将文件作为程序执行”
  • 尽可能多地阅读,它似乎将我指向我头顶上的信息。

例子

#!/usr/local/bin/python
#!/usr/bin/env python
CHMOD X
Run Code Online (Sandbox Code Playgroud)

我不理解或不知道在哪里使用。

我正在使用 Ubuntu 14.04 和 Python 3

先感谢您。

icons python executable

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

如何提取一对相同字符之间的文本?

输入:

blah?foobar1?blah
Run Code Online (Sandbox Code Playgroud)

期望的输出:

foobar1
Run Code Online (Sandbox Code Playgroud)

我想获取两个“?”之间的文本 人物。

假设总是有 0 或 2 个“?” 字符,使事情变得更容易。

我尝试了以下操作,但我不知道如何让它知道它是哪个事件:

echo "blah?foobar1?blah" | sed -n '/?/,/?/p'
Run Code Online (Sandbox Code Playgroud)

python perl sed awk text-processing

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

如何将python路径重置为/usr/bin/python?

我按照某些说明安装了一个包,最终安装了另一个版本的 python 并创建了符号链接(我不记得名字了)。现在,当我从终端点击 python 时,它指向/usr/local/python2.7/bin/python2.7. 我需要将默认 python 重置为/usr/bin/python. 怎么做?

$ which python
/usr/bin/python
$ whereis python
python: /usr/bin/python2.7-config /usr/bin/python2.7 /usr/bin/python /etc/python2.7 /etc/python /usr/lib/python2.7 /usr/bin/X11/python2.7-config /usr/bin/X11/python2.7 /usr/bin/X11/python /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
$ 
$ python
bash: /usr/local/python2.7/bin/python2.7: No such file or directory
$ 
$ /usr/bin/python
Python 2.7.3 (default, Dec 18 2014, 19:10:20) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Run Code Online (Sandbox Code Playgroud)

python

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

我能否像在 PC 上一样在 Ubuntu Phone 中本地运行 Java、C 或 Python?

魅族的 Ubuntu Phone 将于明天面向欧洲观众发布。我一直在四处寻找有关它的信息,但我唯一能找到的是一些实际的评论,这些评论并没有回答最重要的 - 对我来说 - 事情:Ubuntu 手机是(或将是?)应该是一旦连接到外部屏幕,它就会变成一个完全成熟的桌面系统。因此,我假设用户将能够在非移动 Ubuntu 系统上像他们一样运行和编译程序。

所以我的问题是,魅族(MX4)新手机中的Ubuntu Phone OS是否能够做到这一点?我能否像在台式机/笔记本电脑上一样在其上安装 C/Python/Java 等并编译或运行等效程序?

如果该功能在 Ubuntu Phone 操作系统中尚不可用,是否有人知道是否有计划实施它?

谢谢!

python java ubuntu-touch

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