小编ozn*_*ozn的帖子

Python多处理模块中ThreadPool与Pool之间的区别是什么

请告诉我之间的差异ThreadPool,并Poolmultiprocessing模块.当我尝试我的代码时,这是我看到的主要区别:

from multiprocessing import Pool
import os, time

print("hi outside of main()")

def hello(x):
    print("inside hello()")
    print("Proccess id: ", os.getpid())
    time.sleep(3)
    return x*x

if __name__ == "__main__":
    p = Pool(5)
    pool_output = p.map(hello, range(3))

    print(pool_output)
Run Code Online (Sandbox Code Playgroud)

我看到以下输出:

hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
hi outside of main()
inside hello()
Proccess id:  13268
inside hello()
Proccess id:  11104
inside hello()
Proccess id: …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing threadpool python-3.x python-multiprocessing

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

设置 robotsframework 中内置关键字的日志级别

在机器人框架中,看起来它默认使用“INFO”日志级别记录“=”等关键字的消息。前任:

<Test case>
  ${xyz} = "hello"
Run Code Online (Sandbox Code Playgroud)

将记录消息:

'INFO': ${xyz} = "hello"
Run Code Online (Sandbox Code Playgroud)

我想将其日志级别降低为“DEBUG”或“TRACE”,但似乎无法在源代码中找到它。对此有什么建议吗?

robotframework

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

什么是PyPy和PyPI之间的区别

这可能是一个非常愚蠢的问题,但是'PyPy'和'PyPI'之间的区别是什么?它们是一样的吗?

python pypy pypi

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

在 python 中更新/添加 url 中的用户名

如果我有一个 URL(例如:“ssh://hello@xyz.com:553/random_uri”、“ https://test.blah.blah:993/random_uri2 ”),我想设置/更新用户名网址。我知道有 urllib.parse.urlparse ( https://docs.python.org/3/library/urllib.parse.html ) 会分解它们,但我在创建新的 url (或更新) 解析时遇到问题结果是我打算使用的用户名。

有没有可以帮助设置/更新用户名的Python库?最好使用 urlparse 的解析结果。

python urllib urlparse

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

如何使用pytest-mock或magicmock模拟导入的对象

我正在尝试了解这些mock/monkeypatch/pytest-mock功能。

让我知道是否可行。如果不能,请建议我如何测试此代码。

我的代码结构:

/
./app
../__init__.py
../some_module1
.../__init__.py
../some_module2
.../__init__.py
./tests
../test_db.py
Run Code Online (Sandbox Code Playgroud)

/app/__init__.py此处启动我的应用程序(如果有帮助,则为Flask应用程序),并初始化与MongoDB数据库的数据库连接对象:

# ...

def create_app():
  # ...
  return app

db_conn = DB()
Run Code Online (Sandbox Code Playgroud)

some_module1some_module导入db_conn对象,并把它作为自己的部分功能:

## some_module1/__init__.py
from app import db_conn

...
db = db_conn.db_name2.db_collection2

def some_func1():
    data = db.find()
    # check and do something with data
    return boolean_result

...

## some_module2/__init__.py
from app import db_conn

...
db = db_conn.db_name1.db_collection1

def some_func2():
    data = db.find()
    # check and do something …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking pytest pytest-mock

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

在 Python Flask-login 中禁用会话 Cookie 生成

在搜索了 Python Flask-Login 后,我找到了利用 header/api-key 身份验证而不是默认的 cookie 身份验证的方法。 https://flask-login.readthedocs.io/en/latest/#disabling-session-cookie-for-apis

然而,在初始/请求中,Flask 仍然在会话中使用 cookie 进行响应。上述方法仅确保任何新请求(@login_required)都能够在没有 cookie 的情况下进行身份验证(并使用标头或我的实现所需的任何方法)。

有办法禁用它吗?或者我错过了什么。

python flask flask-login

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

Prometheus Pushgateway 简单指标监控

我正在尝试学习普罗米修斯(并最终使用它grafana)。到目前为止,我正在尝试学习的主要用例是能够从我的客户端进行更新(没有普罗米修斯刮擦)。我有一个pushgateway,我希望我的脚本/进程能够更新prometheus(然后grafana 获取该统计数据)。我有一个简单的脚本,我开始使用它,我在其中获取了 cpu 利用率(将其计算为百分比)并将其发送给 prometheus:

from prometheus_client import CollectorRegistry, Gauge, push_to_gateway, Summary, Histogram
from time import sleep
from random import randint, random

registry = CollectorRegistry()

cpu_util_sum_metric = Summary('cpu_util_summary', 'cpu_util_summary', registry=registry)
cpu_util_hist_metric = Summary('cpu_util_hist', 'cpu_util_hist', registry=registry)

for i in range(90):
  cpu_util = randint(0, 100)

  cpu_util_sum_metric.observe(float(cpu_util))
  cpu_util_hist_metric.observe(float(cpu_util))
  print('cpu util is: {}'.format(cpu_util))
  res = push_to_gateway('localhost:9091', job='cpu_stats', registry=registry)
  print('push_to_gateway result is:', str(res))
  sleep(5)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在普罗米修斯浏览器中我看到以下指标(基于我的“cpu_util_hist”和“cpu_util_sum”):

  • cpu_util_hist_count
  • cpu_util_hist_创建
  • cpu_util_hist_sum
  • cpu_util_summary_count
  • cpu_util_summary_created
  • cpu_util_summary_sum

首先,我想我会在“cpu_util_hist”或“cpu_util_summary”的不同时间戳(有点像excel中)有单点,我可以用它们在prometheus或grafana中绘制。我怎样才能做到这一点?我需要将它们作为总和并计算利率/利率吗?我对普罗米修斯有什么误解。

python prometheus

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