每当我尝试使用pip时,我都会收到错误消息.例如:
$ sudo pip install gevent-websocket
Traceback (most recent call last):
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1
Run Code Online (Sandbox Code Playgroud)
我觉得很想把值改成pip == 0.8.2 ..但我不觉得处理"黑客攻击"安装的后果......我正在运行python 2.7并且pip是0.8.2版本.
我正在寻找一种有效的方法将我的Ember对象转换为json字符串,以便在下面的websocket消息中使用它
/*
* Model
*/
App.node = Ember.Object.extend({
name: 'theName',
type: 'theType',
value: 'theValue',
})
Run Code Online (Sandbox Code Playgroud)
websocket方法:
App.io.emit('node', {node: hash});
Run Code Online (Sandbox Code Playgroud)
hash应该是节点的json表示.{name:thename,type:theType,..}必须有一个快速的在线人才能做到这一点.我不想手工做,因为我有很多属性,他们很可能会改变..
我正在使用gevent构建一个应用程序.我的应用程序现在变得相当大,因为有很多工作正在产生和销毁.现在我注意到,当其中一个作业崩溃时,我的整个应用程序只是继续运行(如果异常来自非主要的greenlet),这很好.但问题是我必须查看我的控制台才能看到错误.所以我的应用程序的某些部分可能会"死",我不会立即意识到这一点并且应用程序会继续运行.
用try catch东西抖动我的应用程序似乎不是一个干净的解决方案.也许是一个自定义的spawn函数,它会做一些错误报告?
监控gevent jobs/greenlets的正确方法是什么?抓住异常?
在我的情况下,我会听取几个不同来源的事件,我应该处理每个不同的事件.有5个工作非常重要.webserver greenlet,websocket greenlet,数据库greenlet,alarm greenlet和zmq greenlet.如果任何"死",我的申请应该完全死亡.其他死亡的工作并不重要.例如,由于引发了一些异常,websocket greenlet可能会死亡,其余的应用程序一直运行良好,就像没有发生任何事情一样.它现在完全无用且危险,应该只是崩溃.
Pyflakes与以下代码的处理不太合理:
@property
def nodes(self):
return self._nodes
@nodes.setter
def nodes(self, nodes):
"""
set the nodes on this object.
"""
assert nodes != [] # without nodes no route..
self.node_names = [node.name for node in nodes]
self._nodes = nodes
Run Code Online (Sandbox Code Playgroud)
使用使用pyflakes的vim和syntastic我得到以下错误:
W806 redefinition of function 'nodes' from line 5
Run Code Online (Sandbox Code Playgroud)
所以我收到警告,@nodes.setter
因为我重新定义了nodes
.
如何禁用此无用警告,因为此代码是正确的?或者哪个python检查器正确处理此代码?
更新
我在重构代码时遇到了一些问题,因为属性和函数具有不同的继承行为.访问基类的属性是不同的.看到:
所以我现在倾向于避免使用这种语法并使用适当的函数.
我对Vim中默认的python语法突出显示感到恼火.
它没有else:
正确地突出声明.如果我else
和冒号之间有一些空格,Vim只会突出显示else语句:
,所以else :
有效,但else:
没有.
它必须易于修复.
我正在使用Vim 7.2
我正在分析一些旧代码。它大约是80.000行的旧plsql代码。乍看之下,源中有很多重复项需要删除。而是不用做diff的手册并查看每个文件,那里必须有一些工具/命令行配置来检测源代码的重复行。
我的目标是就源代码重写的最小规模以及该程序中捕获的实际知识量做出有根据的猜测。我写了一些基本的静态代码分析器来查找每个文件中的控制语句IF ELSE FOR等和函数。但是重复的代码仍然需要从我的统计信息中删除。
我有这种情况:
您有一个24/7全天候运行的工厂生产线.停机时间非常昂贵.控制所有不同部件的软件必须使用共享形式的数据库存储.主要原因是要知道工厂处于哪种状态.例如,某些产品在使用同一套设备时可以混合使用,而其他产品则可以混合使用.
要求:
系统每天处理一些hunderd分配,进行计算/检查,然后发送工厂机器的指令.系统在大多数时候都会很无聊.最重要的要求是中央计算机系统必须正确且始终有效.
我正在考虑使用基于发电机的数据库(riak或cassandra),其中数据被写入多台机器,每台机器都有整个数据库
当一个系统发生故障时,它会逐渐下降.当表更改并且此主从属更难配置时,传统的sql数据库可能更难以升级.
你的解决方案是什么?
网络已经变得冗余和大多数其他单点故障.数据库系统至关重要,因为数据库停机时间意味着整个工厂的停机时间不仅仅是可接受的机器之一.
可能的重复:
javascript 的空合并运算符?
“选项=选项||”是什么意思 {}”在 Javascript 中是什么意思?
有人能解释一下这个表达吗?我偶然发现了 javascript 代码行,我想知道它是什么意思。
var node = element.node || element[element.length - 1].node;
Run Code Online (Sandbox Code Playgroud)
node get 的用法如下:
if (node.nextSibling) {
node.parentNode.insertBefore(this.node, node.nextSibling);
} else {
node.parentNode[appendChild](this.node);
}
Run Code Online (Sandbox Code Playgroud)
起初我虽然 node 应该是一个布尔值或其他东西,但它不是。如果我认为意思是: node 是 element.node 但如果 node 属性是 undefined node 是元素数组中的最后一个元素,我是否正确?
python ×4
javascript ×2
automation ×1
cassandra ×1
database ×1
decorator ×1
duplicates ×1
ember.js ×1
gevent ×1
pip ×1
plsql ×1
properties ×1
pyflakes ×1
riak ×1
sql ×1
vim ×1