Articles of python

有一个Python网页框架能够在128MB的ram上正常运行吗?

我有一个小而简单的项目,没有数据库交互,我没有免费的资源,除了小型的Linux VPS(vServer)128MB RAM机器。 感觉冒险我想尝试在python中实现这个项目。 会有可能吗? 如果是这样的设置(networking服务器,框架等),我必须select? 我正在从文件系统读取文件,并以美丽的方式显示他们的内容。 也不同之间的文件和几个类似的东西…没有file upload的用户,所有的文本文件是预制的。

djcelery,台球和django_settings_module的不寻常的警告

当为asynchronous进程运行manage.py celeryd时,一切都按预期工作,但是在每次启动时我都会收到奇怪的警告。 这不会导致任何错误,但是我很难使其消失或理解其含义。 这里是: /home/user/lib/python2.7/billiard-2.7.3.15-py2.7-linux -x86_64.egg/billiard/forking.py:455: UserWarning: Will add directory '/home/user/webapps/django/proj' to path! This is necessary to accommodate pre-Django 1.4 layouts using setup_environ. You can skip this warning by adding a DJANGO_SETTINGS_MODULE=settings environment variable. W_OLD_DJANGO_LAYOUT % os.path.realpath(project_dir) 这是不寻常的,因为Django的设置模块已经添加到我的wsgi,它适用于除了这一切。 它是否需要我将设置添加到httpd.conf或其他? 谢谢

python glob.glob – 如何find一个特定的文件(或文件列表),而不知道它在subdirs有多深?

现在,我使用subprocess调用find工作正常,但我是在pythonic做事的方式。 这里是当前的代码: cmd = "find /sys/devices/pci* | grep '/net/' |grep address" p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) 在输出中,我收到以下列表: [root@host1 ~]# find /sys/devices/pci* |grep '/net/'|grep 'address' /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:00.0/0000:08:00.0/net/eth0/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:01.0/0000:09:00.0/net/eth1/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:02.0/0000:0a:00.0/net/rename4/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:03.0/0000:0b:00.0/net/eth3/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:04.0/0000:0c:00.0/net/eth4/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:05.0/0000:0d:00.0/net/eth5/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:06.0/0000:0e:00.0/net/eth6/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:07.0/0000:0f:00.0/net/eth7/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:08.0/0000:10:00.0/net/eth8/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:09.0/0000:11:00.0/net/eth9/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:0a.0/0000:12:00.0/net/eth10/address /sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/0000:05:00.0/0000:06:00.0/0000:07:0b.0/0000:13:00.0/net/eth11/address 现在,如果我做glob.glob('/sys/devices/pci*/*/*/*/*/*/*/net/')我得到一个目录列表,我甚至可以查找文件,但是,即使通过子过程,它似乎也要花费更长的时间。 而且,这组结果是巨大的,我不知道具体主机的体系结构是否具有相同的目录结构,所以我不知道在glob.glob()input了多less个星号。 我的问题是,我怎样才能重复简单的find | grep的行为 find | grep命令实现,或者,或者,如果find一个更好的方法来查找主机所有NIC的所有MAC,无论是否活动(我在这里寻找特定的MAC模式) 编辑:不应该使用glob,os.walk似乎在做这个工作: >>> for root, dirs, names in os.walk('/sys/devices/'): … if 'address' […]

Python,string到JSON?

在Fedora 17 64bit的同时使用netifaces和json导入。 我试图在JSON中获取这种格式 "net_info" : [ {"nic" : …, "mac" : …, "ip" : …}, {"nic" : …, "mac" : …, "ip" : …}, {"nic" : …, "mac" : …, "ip" : …}, ] 我目前正在使用一个string ,只是附加到它,我得到这个: "'net_info': [{'nic':eth0,'mac':6c:f0:49:0f:e1:c2,'ip':192.168.1.116},]" 这可能不起作用,因为每个string的开头和结尾都有引号; 有没有更好的方法来完成这个? 我正在考虑使用字典列表,但最终结束了尝试string,不知道什么是最好的在这种情况下。 这是我的代码,在3列表中: def json_serialize(ip=[],mac=[],nic=[]): jsonDump = "'net_info': [" for i,item in enumerate(ip): jsonDump += […]

用于Linux的Python可控命令行audio播放器

我想build立使用我的树莓派作为媒体站。 它应该能够通过networking上的命令播放歌曲。 这些命令应该由用Python编写的服务器来处理。 因此,我需要一种方法来通过Python控制audio回放。 我决定使用一个命令行音乐播放器的Linux,因为这些应该为audio文件格式提供最大的灵活性。 而且,像PyAudio和PyMedia这样的Python库似乎不适合我。 我对音乐播放器的期望并不是很高。 必须尽可能在尽可能多的编解码器中播放和暂停声音文件,并上下调整音量。 而且由于我没有运行任何桌面环境,所以它必须是一个无头的玩家。 看起来像这样的球员有很多。 例如,mpg123,适用于我所需要的一切。 我现在的问题是,所有这些球员似乎有一个用ncurses编写的用户界面,我不知道如何访问Python的subprocess模块。 所以,我需要一个带有Python绑定的音乐播放器,或者一个可以通过subprocess模块通过命令行进行控制的音乐播放器。 至less这些是我现在想到的解决scheme。 有谁知道一个命令行audio播放器的Linux将解决我的问题? 或者还有其他的方法吗? 提前致谢

Python脚本不能在Autokey上工作

我试图做一个Python实体编码器/解码器的行为类似于PHP的htmlentities和html_entity_decode ,它作为一个独立的脚本正常工作: 我的意见: Lorem &Aacute;&Eacute;&Iacute;&Oacute;&Uacute;&Ccedil;&Atilde;O&Aacute;&aacute;&eacute;&iacute;&oacute;&uacute;&ccedil;&atilde;o @#$%*()[]&lt;&gt;+ 0123456789 python decode.py 输出: Lorem ÁÉÍÓÚÇÃOÁáéíóúção @#$%*()[]<>+ 0123456789 现在,如果我运行它作为一个Autokey脚本,我得到这个错误: Script name: 'html_entity_decode' Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/autokey/service.py", line 454, in execute exec script.code in scope File "<string>", line 40, in <module> File "/usr/local/lib/python2.7/dist-packages/autokey/scripting.py", line 42, in send_keys self.mediator.send_string(keyString.decode("utf-8")) File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, […]

Python – ValueError:float()的无效文字:

我有一个csv文件,我试图计算出现在它的每个列的平均值。 #!/usr/bin/python with open('/home/rnish/Desktop/lbm-reference.dat.ref-2013-01-30-13-00-15big.csv', "rU") as f: columns = f.readline().strip().split(' ') numRows = 0 sums = [0] * len(columns) for line in f: values = line.split(" ") print values for i in xrange(len(values)): sums[i] += float(values[i]) numRows += 1 # for index, summedRowValue in enumerate(sums): # print columns[index], 1.0 * summedRowValue / numRows 我得到的错误是: File […]

错误的path结果python程序运行使用crontab

我有一个Linux下的Python脚本,需要确定当前的工作目录。 这样做的程序的一部分是: import os cwd = os.getcwd() print cwd 当我运行程序时,它给了我正确的答案: /home/johny/LST/CT 但是当我使用crontab运行它,它给了我这个: /home/johny 即使我把它放在更深的文件夹中,也会产生相同的path。 有人知道可能是什么问题吗?

Python程序可能导致文件系统错误?

概述: 你好。 我有一个Python程序,控制9-5之间的运动传感器。 这个程序运行在一个树莓派,存储在SD媒体与occidentals v2.1 Debian操作系统。 该程序严重依赖time.sleep方法在下class时间rest,并在第二天上午9点恢复工作。 如果传感器触发,它会自动通过networking摄像头拍摄一张小图片。 问题: 直到最近程序工作正常,直到有一天早上有人触发传感器,并且take_picture()函数未能初始化/ dev / video0。 看来,udev没有将设备映射到/ dev / video *,当我重新插入networking摄像头并使用“ dmesg | tail ”检查它的状态时,我收到一个错误: [36725.201116] EXT4-fs error (device mmcblk0p2): udev 在对问题进行研究并得出文件系统损坏的结论后,我试图在SD介质上运行文件系统检查。 在这个过程中解决了很多错误,但重新安装USBnetworking摄像头后,重新发生相同的EXT4-FS错误信息。 修复尝试#1 此时我重新安装了操作系统并重新运行我的传感器python程序; 两天工作,发送图像,睡觉。 我认为一切正常,所以我closures了设备,把传感器放在更集中的位置。 启动设备后,只需从ssh连接运行“python”命令,我收到这个错误: Traceback (most recent call last): File "/usr/lib/python2.7/site.py", line 562, in <module> main() File "/usr/lib/python2.7/site.py", line 544, in main known_paths = […]

如何在Linux中redirect屏幕后台进程的所有输出?

试图找出为什么我们用screen运行一个特定的过程没有开始。 出于这个原因,能够将屏幕的输出redirect到文件是非常有用的(就像使用>指令一样)。 有没有一个好的方法来做到这一点? 我们运行的命令如下所示: screen -m -d -S some_name_to_reference_it my_program 请注意使用-m和-d来守护程序,并使用-S来生成会话名称。 非常感谢!