相关疑难解决方法(0)

如何检查python模块的版本?

我刚安装的Python模块:construct并statlib用setuptools这样的:

# Install setuptools to be able to download the following
sudo apt-get install python-setuptools

# Install statlib for lightweight statistical tools
sudo easy_install statlib

# Install construct for packing/unpacking binary data
sudo easy_install construct
Run Code Online (Sandbox Code Playgroud)

我希望能够(以编程方式)检查他们的版本.是否python --version可以从命令行运行?

我的python版本是2.7.3.

python

585
推荐指数
20
解决办法
80万
查看次数

如何阅读键盘输入?

我想在python中从键盘读取数据

我试试这个:

nb = input('Choose a number')
print ('Number%s \n' % (nb))
Run Code Online (Sandbox Code Playgroud)

但它不起作用,既不是日食也不是终端,它总是停止问题.我可以输入一个数字,但没有任何事情发生.

你知道为什么吗?

python keyboard input

118
推荐指数
3
解决办法
44万
查看次数

用于读取串行端口的Python多线程/多个进程

我正在尝试编写一个python类,利用并行处理/线程来读取两个串行端口(/ dev/ttyS1和/ dev/ttyS2).这两个端口都以19200波特率运行并且一直处于活动状态.我为此目的使用了pySerial.

两个读操作都需要连续并同时运行.我想知道是否应该使用线程库或线程库或多处理库.我只是担心因为全局解释器锁不能为重型IO操作提供真正的线程处理能力.但是如果全局解释器锁不影响我,那么我将使用线程/线程模块.但是,如果确实如此,那么我需要交叉编译python多处理库,因为这是在嵌入式系统上.

所以我的代码通常会有thread1或process1 =读取ttyS1并在读取行上执行一些字符串操作后写入缓冲区.thread2或process2 =读取ttyS2并在读取行上执行某些字符串操作后写入另一个缓冲区.其他功能等这些缓冲区进一步被代码中的其他部分使用.

python中的多处理还需要多个内核/ cpus吗?

谢谢阅读!

python concurrency multithreading multiprocessing

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

Python Pyserial同时从多个串口读取数据

我正在尝试使用 Python 2.7 和 PySerial 同时读取多个串行端口。
特点应该是:

  1. 在主程序中,我获取所有打开的串行端口,打开它们并将串行对象附加到serialobjects
  2. 我想在一个子进程中读取每个串口数据以进行并行化

最大的问题是:如何将串口对象传递给子进程?
或者:
是否存在另一种(也许更好)的解决方案?(也许是这样:如何将扭曲的串行端口应用于我的问题?)

编辑

我想我并不完全清楚我想要实现什么。
我想同时读取2个或更多串口。由于超时和读出时间的原因,不可能在一个进程中同时读出它们。
下面的方法

ser1 = serial.Serial(port="COM1",baudrate=9600)
ser2 = serial.Serial(port="COM2",baudrate=9600)

ser1.write('command for reading out device 1')
output1 = ser1.readline()

ser2.write('command for reading out device 2')
# now you have to wait at least 100ms for device 2 to respond
output2 = ser2.readline()
Run Code Online (Sandbox Code Playgroud)

不能满足我的需求。

另一种方法是并行化子进程中的串行读取。

主要.py

import serial   # serial communication
from subprocess import Popen, PIPE

ports = ["COM1", "COM2"]
for port in ports:
    ser = serial.Serial() …
Run Code Online (Sandbox Code Playgroud)

python serialization serial-port nonblocking python-multiprocessing

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