首页 > 解决方案 > 创建异步 modbus 服务器 python 问题

问题描述

我是 Python 新手,正在尝试使用 pymodbus 模块创建一个 modbus 服务器。我按照链接上的教程进行操作,但是当我运行脚本时出现错误:

$ python2.7 server1.py    
INFO:pymodbus.server.async:Starting Modbus TCP Server on 192.168.1.100:502    
Traceback (most recent call last):    
File "server1.py", line 83, in <module>    
StartTcpServer(context, address=("192.168.1.100", 502))    
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/server/async.py",     
line 255, in StartTcpServer    
reactor.listenTCP(address[1], factory, interface=address[0])    
File "/home/pi/.local/lib/python2.7/site-     
packages/twisted/internet/posixbase.py", line 495, in listenTCP    
p.startListening()    
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/tcp.py",     
line 1363, in startListening    
raise CannotListenError(self.interface, self.port, le)    
twisted.internet.error.CannotListenError: Couldn't listen on     
192.168.1.100:502: [Errno 13] Permission denied.    

任何人都可以帮助我解决我的问题,在此先感谢。


[更新]:

$ sudo python2.7 server1.py    
Traceback (most recent call last):    
File "server1.py", line 12, in <module>     
from pymodbus.server.async import StartTcpServer    
ImportError: No module named pymodbus.server.async    

$ python -V    
Python 2.7.13

$ sudo python server1.py
Traceback (most recent call last):
File "server1.py", line 12, in <module>
from pymodbus.server.async import StartTcpServer
ImportError: No module named pymodbus.server.async    

我已经尝试过“sudo”并出现错误,看起来当我使用“sudo”时模块不在正确的位置......

标签: pythonmodbusmodbus-tcp

解决方案


sudo经许可尝试:

$ sudo python2.7 server1.py 

或者,如果您python链​​接到Python 2.7,如下所示:

$ python -V
Python 2.7.14

那就试试吧:

$ sudo python server1.py

[更新]:

以下行结果必须相同:

$ which python
/usr/bin/python

$ sudo which python
/usr/bin/python

如果您的代码在同一台机器上运行,您可以使用localhost127.0.0.1IP 代替机器 IP。


[注意]:

如果您的操作系统是基于*nix系统的,并且您有ufw防火墙,请执行以下命令:

$ sudo ufw disable

[更新 2]:

处理这个错误ImportError: No module named pymodbus.server.async

你应该使用

import pymodbus.server.asynchronous

代替

import pymodbus.server.async 

在新版本的pymodbus库中。


推荐阅读