小编Ben*_*ari的帖子

在64位环境中使用32位.so文件

我正在使用Ubuntu 12.04 64位,我在编译需要32位.so文件的Qt项目时遇到以下错误.

错误: skipping incompatible /opt/lib/libEposCmd.so when searching for -lEposCmd

我想用-m32选项编译这个项目,但我不知道我应该在哪里插入这个选项.

linux 64-bit x86 qt qt4

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

struct.error: 必需的参数不是整数

我有以下python代码:

velocity = 0
rotation = 0
vr = velocity + (rotation/2)
vl = velocity - (rotation/2)
cmd = struct.pack(">Bhh", 145, vr, vl)
Run Code Online (Sandbox Code Playgroud)

我处理以下错误:

File "control.py", line 125, in __init__  
cmd = struct.pack(">Bhh", 145, vr, vl)  
struct.error: required argument is not an integer
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

pymodbus 异常响应(131, 3, IllegalAddress)

我正在尝试运行这段代码:

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import logging

logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.DEBUG)

client = ModbusClient(method='rtu', baudrate=9600, parity='E', port='/dev/ttyUSB0', timeout=1)
client.connect()

rr = client.read_holding_registers(40000, 7, unit=0x01)
print rr
client.close()
Run Code Online (Sandbox Code Playgroud)

但我只得到这个:

DEBUG:pymodbus.transaction:Running transaction 1
DEBUG:pymodbus.factory:Factory Response[131]
DEBUG:pymodbus.transaction:adding transaction 0
DEBUG:pymodbus.transaction:getting transaction 1
Exception Response(131, 3, IllegalAddress)
Run Code Online (Sandbox Code Playgroud)

另一方面,这个 C 代码(使用 libmodbus)正在工作:

modbus_t *mb;
int16_t hregs[9];
mb = modbus_new_rtu('/dev/ttyUSB0', 9600, 'E', 8, 1);
modbus_set_slave(mb, 1);
modbus_read_registers(mb, 0x40000, 7, hregs)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python modbus pymodbus

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

将ZMQ PUB与.connect()或.bind()方法一起使用有什么区别?

在Python ZMQ 发布者/订阅者样本模板中,发布者使用.bind()方法,而订阅者使用.connect()方法,该方法连接到绑定IP地址。

但是,我们可以更换.bind(),并.connect()各自与其他。

我的问题是,以下确定的两种情况之间有什么区别?
(在这种情况下,两个脚本可以正常工作)

第一种情况,默认情况下:

pub1.py:

import zmq
import time
from datetime import datetime

def create_pub_socket():
    context = zmq.Context()
    socket = context.socket(zmq.PUB)
    socket.bind("tcp://127.0.0.1:9002")  # notice
    return socket

def publish(pub_socket):
    message = {
        'data': 'hi my name is benyamin',
        'time': datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
    }
    pub_socket.send_json(message, 0)
    return message

if __name__ == '__main__':
    socket = create_pub_socket()

    while True:
        print('\n')
        print('publisher: ', publish(socket))
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

sub1.py:

import zmq

if __name__ == '__main__':
    context = zmq.Context() …
Run Code Online (Sandbox Code Playgroud)

python bind connect zeromq pyzmq

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

如何在python中限制ZMQ(ZeroMQ - PyZMQ)队列缓冲区大小?

我正在使用pyzmq带有pub/sub模式的库。我有一些快速的 ZMQ 发布.connect()方法和一个较慢的 ZMQ 订阅.bind()方法。然后几分钟后,我的订阅者从发布者那里得到旧的发布数据(由于 ZMQ 缓冲区)。


我的问题:

有没有办法管理ZMQ 队列缓冲区大小?(设置有限的缓冲区)

[注意]:

  • 我不想使用 ZMQ 推/拉。
  • 我读过这篇文章,但这种方法只清除缓冲区:清除 ZMQ 缓冲区
  • 我也尝试过high watermark选项,但没有用:
socket.setsockopt(zmq.RCVHWM, 10)  # not working
socket.setsockopt(zmq.SNDHWM, 10)  # not working
Run Code Online (Sandbox Code Playgroud)

出版商:

import zmq
import time

port = "5556"
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:%s" % port)
socket.setsockopt(zmq.SNDHWM, 10)  # not working

while True:
    data = time.time()
    print("%d" % data) …
Run Code Online (Sandbox Code Playgroud)

python sockets zeromq pyzmq

5
推荐指数
2
解决办法
6058
查看次数

Apache Airflow 导入错误:无法导入名称“_psutil_linux”

我正在按照https://airflow.apache.org/start.html#quick-start提供的安装步骤安装 apache 气流

  1. 第一步 - export AIRFLOW_HOME=~/airflow(没有错误)

  2. 第二步 - pip install apache-airflow(没有错误)

  3. 第三步 - airflow initdb(错误 - ImportError: cannot import name '_psutil_linux'

错误的详细信息如下图所示:

在此处输入图片说明

环境细节如下-

  • Python 版本 - Python 3.6.3 :: Anaconda 自定义(32 位)
  • 点子版本 - 10.0.1
  • Ubuntu 版本 - 14.04 LTS
  • 操作系统类型 - 32 位

我应该如何继续解决它?我已经尝试过更新 pip 并安装 python-dev 但这不起作用。

python importerror python-3.x psutil airflow

5
推荐指数
2
解决办法
3445
查看次数

ModelMultipleChoiceField上的Django Multi值

models.py

class User(models.Model):
    id = models.CharField(max_length=255)
    name = models.CharField(max_length=255)
    desc = models.TextField()
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(auto_now_add=True, null=True)

    def __str__(self):
        return self.user.name
Run Code Online (Sandbox Code Playgroud)

我的forms.py

class PostsForm(forms.ModelForm):
    user = forms.ModelMultipleChoiceField(
        queryset=User.objects.all()
        )
    class Meta:
        model = Posts
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

在我的表单上面我的代码看起来像这样:

+------------+
|Select    + |
+------------+
|John Doe    |
|Jessica     |
|Jessica     |
|Alex Joe    |
+------------+
Run Code Online (Sandbox Code Playgroud)

Hovewer不是我想要的,因为可能有多个名字,我知道这个价值来自def __str__于我的模型.

如何在我的领域添加另一个str将是:

+---------------------+
|Select             + |
+---------------------+
| 012931 - John Doe   |
| 012932 - Jessica    |
| …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms

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

docker ee windows server 2016 无法创建网络

我是 Docker 新手,我正在尝试使用驱动程序桥创建网络

docker network create -d bridge DockerNet
Run Code Online (Sandbox Code Playgroud)

但我不断收到错误消息:来自守护进程的错误响应:找不到插件。

我也尝试使用

docker network create -d l2bridge DockerNet
Run Code Online (Sandbox Code Playgroud)

因为 docker info 中显示的插件名为l2bridge.

码头工人信息:

 Containers: 4
 Running: 0
 Paused: 0
 Stopped: 4
 Images: 2
 Server Version: 17.06.2-ee-14
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: l2bridge l2tunnel nat null overlay transparent
  Log: awslogs etwlogs fluentd json-file logentries splunk syslog
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 14393 (14393.2248.amd64fre.rs1_release.180427-1804)
 Operating System: Windows Server 2016 Standard
 OSType: windows …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-networking windows-server-2016

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

调用异步函数时如何防止上下文切换?

如果我使用异步函数,那么堆栈上方的所有函数也应该是异步的,并且其调用之前应带有await关键字。此示例使用应用程序的多个体系结构层模拟现代程序:

async def func1():
    await asyncio.sleep(1)

async def func2():
    await func1()

async def func3():
    await func2()

async def func4():
    await func3()

async def func5():
    await func4()
Run Code Online (Sandbox Code Playgroud)

当执行线程遇到“等待”时,它可以切换到另一个协程,这需要用于上下文切换的资源。由于存在大量相互竞争的规则和不同级别的抽象,这些开销可能开始限制整个系统的性能。但是在给出的示例中,仅在一种情况下在线切换上下文是有意义的:

await asyncio.sleep(1)
Run Code Online (Sandbox Code Playgroud)

如何禁止某些异步功能的上下文切换?

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

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

django.core.exceptions.FieldDoesNotExist:用户没有名为“用户名”的字段

我正在尝试自定义 django 的 AbstractUser。当我尝试重置usernameNone时,出现以下异常:

\n
"django.core.exceptions.FieldDoesNotExist: User has no field named 'username'".\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的代码:

\n
class UserManager(BaseUserManager):\n    use_in_migrations = True\n\n    def _create_user(self, email, password, **extra_fields):\n        if not email:\n            raise ValueError("L'adresse e-mail donn\xc3\xa9e doit etre definie")\n        email = self.normalize_email(email)\n        user = self.model(email=email, **extra_fields)\n        user.set_password(password)\n        user.save(using=self._db)\n        return user\n\n    def create_user(self, email, password, **extra_fields):\n        extra_fields.setdefault("is_staff", False)\n        extra_fields.setdefault("is_superuser", False)\n        return self._create_user(email, password, **extra_fields)\n\n    def create_superuser(self, email, password, **extra_fields):\n        extra_fields.setdefault("is_staff", True)\n        extra_fields.setdefault("is_superuser", True)\n\n        if extra_fields.get("is_staff") is not True:\n            raise ValueError("Superuser must …
Run Code Online (Sandbox Code Playgroud)

python django

5
推荐指数
2
解决办法
9712
查看次数