小编lar*_*sks的帖子

将jinja2过滤器应用于块?

是否可以将jinja2过滤器应用于{% block ... %}构造?我希望做的是以下内容:

{% block content|upper %}
here is some content that will be rendered in upper case
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

......但这不起作用; 上面的例子会导致错误.有没有其他方法可以在jinja2过滤器中包装一大块模板文本?

python templates jinja2

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

如何获取远程主机的环境变量

我在使用远程主机的环境变量时遇到问题.例如,当我尝试{{lookup('env','PATH')}}时,这将返回我的来宾机器的路径,而不是远程主机的路径.

如何获取/更改远程主机的环境变量?

我的剧本:

---
- name : playbook
  hosts : webservers
  gather_facts: yes
  remote_user: user1
  vars:
   Path: "{{lookup('ansible_env','PATH')}}"
  roles :
 - task1
 - task2 
 - task3 
Run Code Online (Sandbox Code Playgroud)

返回我的机器的路径而不是名为user1的远程主机的路径我是ansible的初学者需要一些帮助.先感谢您.

linux yaml environment-variables ansible ansible-playbook

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

FastAPI + Docker:连接被拒绝

每个人!

我在使用 Docker 容器部署 FastAPI 应用程序时遇到问题。我已经测试过在没有 Docker 的情况下部署它,仅使用 FastAPI,并且一切正常。但是当我使用 Docker 时,我无法访问 API,只收到“连接被拒绝”消息。

这是我正在使用的Dockerfile :

FROM python:3.7-slim

WORKDIR /app/
COPY . /app/

RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN apt-get -y install curl
RUN apt-get install libgomp1

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host=0.0.0.0", "--reload"]
Run Code Online (Sandbox Code Playgroud)

注意:我必须构建的 API 是以 ML 为中心的,因此我需要声明一些如上所述的包,以便可以使用 LightGBM。

构建 Dockerfile 后,我运行了以下Docker 命令

docker build -t ml_app:latest .

docker run -p 8000:8000 --name test_cont ml_app:latest

当我使用 检查正在运行的容器时docker ps …

windows docker fastapi

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

用于实现二进制文件格式的Python模块?

我经常发现自己需要编写代码来与没有现有工具的二进制文件格式进行交互.我正在寻找一种简单的方法来实现结构化二进制格式的读者/编写者 - 理想情况下,我可以使用某种简单的声明格式创建读者.

我找到了Construct模块,它起作用但似乎已被作者基本上抛弃了.我想知道是否有其他人可以使用的替代方案.

python binary resources templates

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

我可以使用带有QEMU后端的libvirt Python模块注册事件回调吗?

我想编写一些代码来监控由libvirt管理的QEMU下运行的域的事件.但是,尝试注册事件处理程序会产生以下错误:

>>> import libvirt
>>> conn = libvirt.openReadOnly('qemu:///system')
>>> conn.domainEventRegister(callback, None)
libvir: Remote error : this function is not supported by the connection driver: no event support
Run Code Online (Sandbox Code Playgroud)

(在这种情况下,"回调"是一个简单打印其​​参数的存根函数.)

我能够找到关于libvirt事件处理的示例似乎并不具体说明哪些后端虚拟机管理程序支持哪些功能.这预计适用于QEMU后端吗?

我正在运行Fedora 16系统,其中包括libvirt 0.9.6qemu-kvm 0.15.1.

对于那些通过<searchengine>找到自己的人:

更新2013-10-04

许多月和一些Fedora版本之后,libvirt git存储库中的event-test.py代码在Fedora 19上正确运行.

python virtualization qemu libvirt

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

我可以从Python代码中打开多个网络命名空间中的套接字吗?

我在多个网络命名空间中运行一些应用程序.我需要创建到环回地址的套接字连接+每个名称空间中的特定端口.请注意,"特定端口"在所有网络命名空间中都是相同的.有没有办法在python中创建这样的套接字连接?

欣赏任何指针!

python sockets namespaces

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

将图像旋转90°时,如何停止PIL交换高度/宽度?

我正在使用PIL来旋转图像.这通常起作用,除非我将图像精确旋转90°或270°,在这种情况下x和y测量值交换.也就是说,鉴于此图像:

>>> img.size
(93, 64)
Run Code Online (Sandbox Code Playgroud)

如果我将它旋转89°,我得到这个:

>>> img.rotate(89).size
(93, 64)
Run Code Online (Sandbox Code Playgroud)

到了91°,我得到了这个:

>>> img.rotate(91).size
(93, 64)
Run Code Online (Sandbox Code Playgroud)

但如果我将其旋转90°或270°,我会发现交换的高度和宽度:

>>> img.rotate(90).size
(64, 93)
>>> img.rotate(270).size
(64, 93)
Run Code Online (Sandbox Code Playgroud)

什么是防止这种情况的正确方法?

python python-imaging-library

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

ESP8266 + Micropython:为什么我会定期用i2c读取来获得相同的值?

我写使用一些简单的代码MicroPython上Digistump橡树,这基本上是一个ESP8266接口板运行.我试图了解通过i2c定期读取传感器时看到的行为.

下面的代码(读取ACCEL_XOUT_HACCEL_XOUT_L寄存器的值)工作得很好:

>>> from machine import Pin, I2C
>>> bus = I2C(scl=Pin(2), sda=Pin(0))
>>> while True: 
...     h, l = bus.readfrom_mem(0x68, 0x3b, 2)
...     print (-((((h<<8)+l)^0xFFFF) + 1) if (h & (1<<7)) else (h<<8)+l)
Run Code Online (Sandbox Code Playgroud)

(该print语句只是从两个补码执行转换.)

正如预期的那样,当我移动imu时,打印出的加速度计值大致实时变化.

但如果我在循环中引入延迟,例如...

>>> import time
>>> from machine import Pin, I2C
>>> bus = I2C(scl=Pin(2), sda=Pin(0))
>>> while True: 
...     h, l = bus.readfrom_mem(0x68, 0x3b, 2)
...     print (-((((h<<8)+l)^0xFFFF) + 1) if (h & (1<<7)) else (h<<8)+l)
...     time.sleep(1) …
Run Code Online (Sandbox Code Playgroud)

accelerometer esp8266 micropython mpu6050

7
推荐指数
0
解决办法
557
查看次数

influxdb:计算布尔事件的持续时间?

我有来自门传感器的 influxdb 数据库中的数据。这是一个布尔传感器(门打开(值为false)或关闭(值为true)),表格如下所示:

name: door
--------------
time            value
1506026143659488953 true
1506026183699139512 false
1506026751433484237 true
1506026761473122666 false
1506043848850764808 true
1506043887602743375 false
Run Code Online (Sandbox Code Playgroud)

我想计算在给定的时间内门打开的时间。在已播放功能让我接近,但我不知道如何可以(一)限制它,只有那些间隔将初使值false,或(b)从类似的输出确定“开放”的时间间隔select elapsed(value, 1s) from door

我希望我能做这样的事情:

select elapsed(value, 1s), first(value) from door
Run Code Online (Sandbox Code Playgroud)

但这并没有让我得到任何有用的东西:

name: door
--------------
time            elapsed first
0               true
1506026183699139512 40  
1506026751433484237 567 
1506026761473122666 10  
1506043848850764808 17087   
1506043887602743375 38  
Run Code Online (Sandbox Code Playgroud)

我希望有更多类似的东西:

name: door
--------------
time            elapsed first
1506026183699139512 40  true
1506026751433484237 567 false
1506026761473122666 10  true
1506043848850764808 17087   false …
Run Code Online (Sandbox Code Playgroud)

influxdb

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

什么时候 getattr() 不像正常的属性访问?

这段代码之间有什么区别,它使用点表示法进行属性访问:

def get_foo(self):
    try:
        return self._attribute
    except AttributeError:
        self._attribute = 'something'
        return self._attribute
Run Code Online (Sandbox Code Playgroud)

以及使用该getattr函数的以下代码:

def get_foo(self):
    try:
        return getattr(self, '_attribute')
    except AttributeError:
        self._attribute = 'something'
        return self._attribute
Run Code Online (Sandbox Code Playgroud)

他们对我来说似乎表现得一样,但我在一些代码中遇到了后一个例子,我很好奇为什么getattr()在这种情况下会选择调用。

python

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