小编Евг*_*нко的帖子

python 3.6中安装pycrypto的问题

我试图使用pip在python 3.6.0上安装pysnmp(使用pycrypto),但是我遇到了一个错误:

命令""c:\ program files(x86)\ python36-32\python.exe"-u -c"import setuptools,tokenize; file ='C:\ Users\HOME-M~1\AppData\Local\Temp\pip-build-6l69kxa5\pycrypto\setup.py'; f = getattr(tokenize,'op en',open)(file); code = f.read().replace('\ r \n','\n'); f.close(); exec(compile(code,file,'exec'))"install --record C:\用户\ HOME-M~1\AppData\Local\Temp\pip-qq93gmf_-record\install-record.txt --single- version-external-managed --compile"在C:\ Users\HOME中失败并显示错误代码1 -M~1\AppData\Local\Temp\p ip-build-6l69kxa5\pycrypto \

我不是高级用户,我无法为这个问题找到解决方案.如果您知道如何解决它,请告诉我.Python 3.5.2很容易安装.

pycrypto pysnmp python-3.6

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

python 协程超时

如何让协程因超时而停止?

我不明白为什么 asyncio.wait_for() 对我不起作用。我有这样一段代码(计划实现 telnet 客户端):

def expect(self, pattern, timeout=20): 
    if type(pattern) == str:
        pattern = pattern.encode('ascii', 'ignore')        
    return self.loop.run_until_complete(asyncio.wait_for(self.asyncxpect(pattern), timeout))

async def asyncxpect(self, pattern): #receives data in a cumulative way until match is found
    regexp = re.compile(b'(?P<payload>[\s\S]*)(?P<pattern>%s)' %pattern)
    self.buffer = b''
    while True:
        # add timeout
        # add exception handling for unexpectedly closed connections
        data = await self.loop.sock_recv(self.sock, 10000) 
        self.buffer += data
        m = re.match(regexp, self.buffer)
        if m:
            payload = m.group('payload')
            match = m.group('pattern')
            return payload, match 
Run Code Online (Sandbox Code Playgroud)

正如我所认为的,这段代码在某个时刻(在等待语句中)将控制权返回给事件循环。我认为当没有更多数据可以接收时应该发生这种情况。如果事件循环有控制权,它可以超时停止。

但是,如果服务器没有发送任何有用的(匹配的)我的代码就会在这个循环中绊倒,就在等待点。 …

python coroutine python-sockets python-asyncio

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