我有一个virtualenv位于/home/user/virtualenvs/Environment.现在我需要在另一台PC上使用这个环境.所以我安装virtualenv-clone并用它来克隆/Environment.然后我通过USB将其复制到另一台PC.我可以激活它source activate,但当我尝试启动python解释器时,sudo ./Environment/bin/python我得到
./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)
没有sudo执行它会给我一个错误,告诉我二进制格式有错误.但这怎么可能呢?我刚刚复制了它.或者有更好的方法吗?我不能只使用,pip freeze因为/Environment/lib/python2.7/site-packages/我自己编写了一些软件包,我也需要复制它们.据我所知,它pip freeze只是创建了一个包列表,然后下载和安装.
对于我正在做的项目,它使用scapy和套接字,我需要能够以root身份进行调试.
我已经想出如何在没有系统请求许可的情况下以root身份启动解释器.我补充说:
user ALL=(root) NOPASSWD:/home/user/git/Project/bin/python2.7
Run Code Online (Sandbox Code Playgroud)
到/etc/sudoers.tmp.我使用的路径导致我正在为此项目使用的虚拟环境的python解释器.LiClipse项目也使用此路径.现在我只需要让LiClipse以root身份运行解释器,但我不想以root身份启动LiClipse.我只是希望它在调试时以root身份使用此解释器.我怎样才能做到这一点?
我正在尝试剖析数据包,它封装了另一个类似于数据包的结构,称为"标记".结构看起来像这样
+---------+
|Ether |
+---------+
|IP | a tag
+---------+
|UDP | +------------+
+---------+ |tagNumber |
|BVLC | +------------+
+---------+ |tagClass |
|NPDU | +------------+
+---------+ +-+ |LVT field |
|APDU | | +------------+
| +------+--+ | | |
| |Tag 1 | <------+ | data |
| +---------+ | |
| |Tag 2 | +------------+
| +---------+
| |Tag n |
+------------+
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个派生自现有的类PacketListField,如下所示:
class TagListField(PacketListField):
def __init__(self):
PacketListField.__init__(
self,
"tags",
[],
guessBACNetTagClass,
Run Code Online (Sandbox Code Playgroud)
引用guessBACNetTagClass的函数返回解析标记所需的正确类.
BACNetTagClasses = …Run Code Online (Sandbox Code Playgroud) 我在raspberry-pi上设置了radius-server.现在我想根据http://networkradius.com/doc/FreeRADIUS-Implementation-Ch6.pdf中的 6.2.1条测试它. 不幸的是,构建文档中描述的"eapol_test"文件对我来说不起作用.执行时
make eapol_test
Run Code Online (Sandbox Code Playgroud)
在新创建的文件夹中它运行一分钟左右然后退出,说
/usr/bin/ld: cannot find -lnl
collect2: ld returned 1 exit status
Makefile:1625: recipe for target 'eapol_test' failed
Run Code Online (Sandbox Code Playgroud)
使用较新版本的wpa_supplicant并不能解决问题.我不太了解make命令,或者如何让它找到"-lnl"(无论这可能是什么),我也找不到解决这个问题的方法.
有谁知道如何解决这一问题?先感谢您
我正在构建一个小嗅探器来接收我网络中设备的答案。我宁愿通过实现answers()Scapys Packet 类的方法来解决这个问题,但这并没有按预期工作。我试图通过首先创建一个嗅探线程,然后将数据包发送到设备并等待答案来绕过它。
import threading
from scapy.all import sniff
class SnifferThread(threading.Thread):
""" Thread that sniffs for incoming packets
"""
def __init__(self, queue, timeout=1, checkFunction=None, filter=None):
""" Initialization method """
if queue is None:
raise Exception, "queue must not be None"
self.q = queue
self.filter = filter
self.timeout = timeout
self.checkFunction = checkFunction
threading.Thread.__init__(self)
def putInQueue(self, packet):
""" Checks packet and puts it into the queue if it matches """
if self.checkFunction:
if self.checkFunction(packet):
self.q.put(packet)
print "put"
else:
self.q.put(packet) …Run Code Online (Sandbox Code Playgroud) 我需要一个函数,它返回长度为n的所有可能的二进制元组的列表,如下所示:
binaryTuples(n=2) => [(0,0),(0,1),(1,0),(1,1)]
binaryTuples(n=3) => [(0,0,0),(0,0,1),(0,1,1),(1,1,1) ... and so on]
Run Code Online (Sandbox Code Playgroud)
我知道这可以用 来完成itertools,但我不知道怎么做。
我做了一件非常愚蠢的事.我正在将一些自编写的包复制到python dist-packages文件夹,然后决定通过重写cp命令来再次删除其中一个rm.现在dist-packages文件夹已经消失了.现在我该怎么做?我可以从某个地方下载此文件夹的正常内容,还是需要完全重新安装python.如果是这样 - 有什么我需要小心的吗?
我删除的文件夹/usr/local/lib/python2.7不是由dpkg朋友维护的文件夹.
以下两个"开关"工作:
return {
1: func1,
2: func2,
3: func3
}[random.choice([1,2,3])]()
d = {
1: func1,
2: func2,
3: func3
}
return d[random.choice(d.keys())]()
Run Code Online (Sandbox Code Playgroud)
它们实际上是一样的.
现在我想做同样的事情,但没有将字典分配给变量 - 这可能吗?我知道_运营商会做类似的事情,所以我想知道这是否也可以做到.
return {
1: func1,
2: func2,
3: func3
}[random.choice(???.keys())]()
Run Code Online (Sandbox Code Playgroud)
我只是出于好奇而问.