小编vic*_*cco的帖子

将完整的virtualenv复制到另一台电脑

我有一个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只是创建了一个包列表,然后下载和安装.

python copy pip virtualenv

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

在PyDev/LiClipse中使用root调试项目

对于我正在做的项目,它使用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身份使用此解释器.我怎样才能做到这一点?

python debugging pydev root scapy

8
推荐指数
1
解决办法
733
查看次数

Scapy:使用PacketListField解析数据包中包含的多个数据包

我正在尝试剖析数据包,它封装了另一个类似于数据包的结构,称为"标记".结构看起来像这样

+---------+
|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)

python scapy packet bacnet

6
推荐指数
1
解决办法
1151
查看次数

使用"/ usr/bin/ld进行编译退出:找不到-lnl"

我在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"(无论这可能是什么),我也找不到解决这个问题的方法.

有谁知道如何解决这一问题?先感谢您

makefile radius raspberry-pi wpa-supplicant

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

queue.get() 只返回一项

我正在构建一个小嗅探器来接收我网络中设备的答案。我宁愿通过实现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)

python queue scapy python-multithreading

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

获取长度为 n 的所有可能的二进制元组的列表

我需要一个函数,它返回长度为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 tuples python-itertools

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

意外删除了dist-packages文件夹,现在该怎么办?

我做了一件非常愚蠢的事.我正在将一些自编写的包复制到python dist-packages文件夹,然后决定通过重写cp命令来再次删除其中一个rm.现在dist-packages文件夹已经消失了.现在我该怎么做?我可以从某个地方下载此文件夹的正常内容,还是需要完全重新安装python.如果是这样 - 有什么我需要小心的吗?

我删除的文件夹/usr/local/lib/python2.7不是由dpkg朋友维护的文件夹.

python debian uninstall reinstall

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

使用字典作为开关而不将其分配给变量

以下两个"开关"工作:

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)

我只是出于好奇而问.

python dictionary key switch-statement

0
推荐指数
1
解决办法
37
查看次数