小编Ben*_*ari的帖子

Python 3.4中的多处理与多线程与asyncio

我发现在Python 3.4中,很少有用于多处理/线程的不同库:多处理线程asyncio.

但我不知道使用哪一个或是"推荐的".他们做同样的事情,还是不同?如果是这样,哪一个用于什么?我想编写一个在我的计算机中使用多核的程序.但我不知道我应该学习哪个图书馆.

python multithreading multiprocessing python-3.x python-asyncio

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

使用带有git的socks代理进行http传输

如何让git使用socks代理进行http传输?

我成功地使用GIT_PROXY_COMMAND配置git以使用socks代理进行GIT传输.

此外,我已经配置我的.curlrc文件来定义socks代理,我可以直接用curl命令获取信息,如:

curl http://git.kernel.org/pub/scm/git/git.git/info/refs?service=git-upload-pack
Run Code Online (Sandbox Code Playgroud)

但是如何使用带git的socks代理来使用http传输协议检索数据,如:

git clone http://git.kernel.org/pub/scm/git
Run Code Online (Sandbox Code Playgroud)

git ssh proxy socks

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

`docker-compose build`和`docker build`有什么区别?

docker-compose build和之间有什么区别docker build

假设在一个dockerized项目路径中有一个docker-compose.yml文件:

docker-compose build
Run Code Online (Sandbox Code Playgroud)

docker build
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose

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

ZeroMQ/ZMQ推/拉模式的实用性

在试验ZeroMQ Push/Pull(他们称之为Pipeline)套接字类型时,我很难理解这种模式的效用.它被称为"负载平衡器".

如果单个服务器向多个工作人员发送任务,推/拉将在所有客户端之间均匀地分发任务.3个客户端和30个任务,每个客户端获得10个任务:client1获取任务1,4,7,... client2,2,5,...等等.很公平.从字面上看.

但是,在实践中,通常存在任务复杂性或客户端计算资源(或可用性)的非同类混合,然后这种模式严重破坏.所有任务似乎都是事先安排好的,服务器不了解客户端的进度或者是否可用.如果client1发生故障,其余的任务不会发送到其他客户端,但仍会为client1排队.如果client1保持关闭状态,则永远不会处理这些任务.相反,如果客户端处理其任务的速度更快,则它不会获得进一步的任务并保持空闲状态,因为它们仍然安排在其他客户端上.

使用REQ/REP是一种可能的解决方案 然后,任务仅被提供给可用资源.

我错过了什么吗?如何Push/Pull有效地使用?有没有办法用这种套接字类型来处理客户端,任务等的不对称性?

谢谢!

这是一个简单的Python示例:

# server

import zmq
import time

context = zmq.Context()
socket = context.socket(zmq.PUSH)
#socket = context.socket(zmq.REP)   # uncomment for Req/Rep

socket.bind("tcp://127.0.0.1:5555")

i = 0
time.sleep(1)   # naive wait for clients to arrive

while True:
  #msg = socket.recv()    # uncomment for Req/Rep
  socket.send(chr(i))
  i += 1 
  if i == 100:
    break

time.sleep(10)   # naive wait for tasks to drain
Run Code Online (Sandbox Code Playgroud)

.

# client

import zmq …
Run Code Online (Sandbox Code Playgroud)

zeromq pyzmq

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

Poetry 是否有 Pip 上可用的“--trusted-host”标志的等效项?

我希望开始在工作中的一些项目中使用诗歌,在这些项目中我被困在有时会干扰证书的公司过滤器后面。

如果我使用 pip,我可以通过执行如下操作来忽略 SSL 错误:

$ pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <package_name>
Run Code Online (Sandbox Code Playgroud)

诗歌中是否存在类似的东西,无论是命令行参数还是要放入锁定文件的配置值?

python pip pypi python-poetry pyproject.toml

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

如何在启用双因素的情况下将包上传到 PyPi?

我想将包上传到 Pypi,因此我创建了一个帐户并尝试按照手册进行操作。

  1. 帐户:

看起来我无法pypi.org直接创建项目:

在此输入图像描述

  1. 我安装了twine并且做了
python3 -m twine upload dist/*
Run Code Online (Sandbox Code Playgroud)

这次我出现了以下错误:

HTTPError: 403 Client Error: Invalid or non-existent 
authentication information. for url: https://upload.pypi.org/legacy/
Run Code Online (Sandbox Code Playgroud)

也许这与我的双因素身份验证有关。我也对那里使用的词感到好奇legacy

如果我禁用双因素身份验证,它就会起作用......

python pip pypi twine

26
推荐指数
2
解决办法
4741
查看次数

Django - 信号.简单的例子开始

我是Django的新手,我无法理解如何使用Django信号.任何人都可以用简单的例子解释" Django信号 "吗?

提前致谢.

python django django-signals

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

ZeroMQ消息大小长度限制?

假设有几台机器使用python'szeroMQ客户端进行交互.

这些消息自然地格式化为字符串.

消息的长度是否有限制(字符串)?

zeromq pyzmq

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

asyncio等待对象 - 基本的例子

我试图了解如何制作一个等待的对象.文档中的定义指出:

返回迭代器的__await__方法的对象.

在该定义的指导下,我编写了示例代码:

import asyncio

async def produce_list():
        num = await Customer()
        print(num)

class Customer(object):

    def __await__(self):
        return iter([1, 2, 3, 4])

loop = asyncio.get_event_loop()
loop.run_until_complete(produce_list())
Run Code Online (Sandbox Code Playgroud)

我期望的流程是:

  1. 事件循环控制produce_list().produce_list()放弃执行num = await Customer().
  2. Customer()执行并返回一个迭代器.因为返回迭代器中的第一个值.Q1:我不清楚为什么num不成为迭代器本身.这也在做什么send
  3. 一旦达到迭代器的最后一个值.num = 4协程的执行继续print(num),并打印值4.

我得到了什么:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
~/workspace/dashboard/so_question_await.py in <module>()
     16 
     17 loop = asyncio.get_event_loop()
---> 18 loop.run_until_complete(produce_list())

/usr/lib/python3.5/asyncio/base_events.py in run_until_complete(self, future)
    464             raise RuntimeError('Event …
Run Code Online (Sandbox Code Playgroud)

python asynchronous python-3.x async-await python-asyncio

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

与asyncio有限的并发性

假设我们有一堆下载链接,每个链接可能需要不同的下载时间.我只允许使用最多3个连接下载.现在,我想确保使用asyncio有效地执行此操作.

这就是我想要实现的目标:在任何时候,尽量确保我至少运行3次下载.

Connection 1: 1---------7---9---
Connection 2: 2---4----6-----
Connection 3: 3-----5---8-----
Run Code Online (Sandbox Code Playgroud)

数字代表下载链接,而连字符代表等待下载.

这是我正在使用的代码

from random import randint
import asyncio

count = 0


async def download(code, permit_download, no_concurrent, downloading_event):
    global count
    downloading_event.set()
    wait_time = randint(1, 3)
    print('downloading {} will take {} second(s)'.format(code, wait_time))
    await asyncio.sleep(wait_time)  # I/O, context will switch to main function
    print('downloaded {}'.format(code))
    count -= 1
    if count < no_concurrent and not permit_download.is_set():
        permit_download.set()


async def main(loop):
    global count
    permit_download = asyncio.Event()
    permit_download.set()
    downloading_event = asyncio.Event()
    no_concurrent = 3 …
Run Code Online (Sandbox Code Playgroud)

python concurrency asynchronous python-3.x python-asyncio

18
推荐指数
7
解决办法
7185
查看次数