小编Ben*_*ari的帖子

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万
查看次数

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
查看次数

kd-tree是kmeans聚类的替代品吗?

我正在使用BOW对象检测,我正在编码阶段.我已经看到一些在编码阶段使用kd-tree的实现,但大多数写作都表明kmeans聚类是要走的路.两者有什么区别?

cluster-analysis kdtree computer-vision k-means

4
推荐指数
2
解决办法
5004
查看次数

Nginx尝试登录/ var/logs而不是/ var/log?

我注意到当我测试我的nginx配置时nginx -t,它给了我一个警告:

nginx: [alert] could not open error log file: open() "/var/logs/nginx/error.log" failed (2: No such file or directory)

这是有道理的,因为nginx的日志路径实际上设置为/var/log/nginx//var/logs/nginx.

我扫描了整个nginx配置目录,没有任何引用/ var/logs的内容.我不知道这个日志位置可以写在哪里?

nginx

4
推荐指数
2
解决办法
8546
查看次数

os.fork和multiprocessing.Process之间的行为差​​异

我有这个代码:

import os

pid = os.fork()

if pid == 0:
    os.environ['HOME'] = "rep1"
    external_function()
else:
    os.environ['HOME'] = "rep2"
    external_function()
Run Code Online (Sandbox Code Playgroud)

而这段代码:

from multiprocessing import Process, Pipe

def f(conn):
    os.environ['HOME'] = "rep1"
    external_function()
    conn.send(some_data)
    conn.close()

if __name__ == '__main__':
    os.environ['HOME'] = "rep2"
    external_function()
    parent_conn, child_conn = Pipe()
    p = Process(target=f, args=(child_conn,))
    p.start()
    print parent_conn.recv()
    p.join()
Run Code Online (Sandbox Code Playgroud)

external_function通过建立在环境变量中找到的目录必要的子目录初始化一个外部程序HOME.此功能仅在每个过程中执行一次.

使用第一个示例,可以os.fork()按预期创建目录.但是使用第二个例子,multiprocessing只有rep2get创建的目录.

为什么没有第二个例子中创建两个目录rep1rep2

python fork process multiprocessing python-multiprocessing

4
推荐指数
1
解决办法
9095
查看次数

Modbus 错误:[输入/输出] 未收到来自远程设备的响应

我尝试使用“安装”/dev/cu.SLAB_USBtoUART.

这是我的代码:

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

from pymodbus.constants import Endian
from pymodbus.constants import Defaults
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from pymodbus.transaction import ModbusRtuFramer

# settings for USB-RS485 adapter
SERIAL = '/dev/cu.SLAB_USBtoUART'
BAUD = 19200

# set Modbus defaults

Defaults.UnitId = 1
Defaults.Retries = 5

client = ModbusClient(method='rtu', port=SERIAL, stopbits=1, bytesize=8, timeout=3, baudrate=BAUD, parity='E')

connection = client.connect()
print "Readout started"

#result = client.read_discrete_inputs(0)
#result = client.read_holding_registers(12,19)
result = client.read_input_registers(0,1)
print(result) …
Run Code Online (Sandbox Code Playgroud)

python modbus pymodbus3 pymodbus

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

如何通过docker cp复制目录?

我想将目录从主机复制到容器,但无法使用以下命令:

$ docker cp -r <a-dir> <a-container-ID>:/destination/path
unknown shorthand flag: 'r' in -r
Run Code Online (Sandbox Code Playgroud)

使用scp -rshell 命令我可以做到,所以我也期待docker cp -r

如何在不使用 make compress .tar 文件及其提取物的情况下克服它?

shell ubuntu docker docker-copy

4
推荐指数
1
解决办法
6941
查看次数

为什么会收到AlreadyExistsError?

当我通过训练我的二进制分类时,keras收到此错误:

AlreadyExistsError: Resource __per_step_16/training_4/Adam/gradients/lstm_10/while/ReadVariableOp_8/Enter_grad/ArithmeticOptimizer/AddOpsRewrite_Add/tmp_var/struct tensorflow::TemporaryVariableOp::TmpVar
     [[{{node training_4/Adam/gradients/lstm_10/while/ReadVariableOp_8/Enter_grad/ArithmeticOptimizer/AddOpsRewrite_Add/tmp_var}} = TemporaryVariable[dtype=DT_FLOAT, shape=[64,256], var_name="training_4...dd/tmp_var", _device="/job:localhost/replica:0/task:0/device:CPU:0"](^training_4/Adam/gradients/lstm_10/while/strided_slice_11_grad/StridedSliceGrad)]]
Run Code Online (Sandbox Code Playgroud)

我执行以下代码:

file = pd.read_csv('train_stemmed.csv')
Y = list(map(int,file['target'].values))
X = list(map(str,file['question_text'].values))

MAXLEN = 100
tokenizer = Tokenizer()
tokenizer.fit_on_texts(X)

X_seq = tokenizer.texts_to_sequences(X)
X_seq_pad = pad_sequences(X_seq, maxlen=MAXLEN)
X_train, X_test, Y_train, Y_test = train_test_split(X_seq_pad, Y, test_size=0.2)
vocab_len = len(tokenizer.word_index) + 1

model = Sequential()
model.add(Embedding(vocab_len, 100, input_length=MAXLEN))
model.add(Conv1D(64, 5, 5, activation='relu'))
model.add(MaxPooling1D(pool_size=5))
model.add(BatchNormalization())
model.add(LSTM(64)) 
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])

model.fit(X_train,
          epochs=2,
          batch_size=128,
          y=Y_train,
          validation_data=(X_test, Y_test),
          verbose=1)
Run Code Online (Sandbox Code Playgroud)

怎么了?

python keras tensorflow tf.keras

4
推荐指数
1
解决办法
639
查看次数

如何从另一个存储库创建新分支?

我有一个带有 master 分支的存储库(repo1)和另一个带有 master 分支的存储库(repo2)。现在我想从repo2 的repo1 中创建一个新分支,其中包含所有提交历史记录。


我的预期结果:

repo2
----
|
 \
  master


repo1
----------
|         |
 \         \
  master    master-from-repo2
Run Code Online (Sandbox Code Playgroud)

git git-branch git-repo

4
推荐指数
1
解决办法
2552
查看次数