can';找不到snap7库-linux
我正在用覆盆子皮B版来运行Rappian 我按照此网页上的说明下载了模块python-snap7: 我试了两次:一次使用pip,另一次手动。 但是,我随后通过can';找不到snap7库-linux,linux,python-2.7,raspbian,plc,snap7,Linux,Python 2.7,Raspbian,Plc,Snap7,我正在用覆盆子皮B版来运行Rappian 我按照此网页上的说明下载了模块python-snap7: 我试了两次:一次使用pip,另一次手动。 但是,我随后通过setup.py build和setup.py install安装了它 如果尝试创建客户端,则会出现以下错误: Python 2.7.3 (default, Mar 18 2014, 05:13:23) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license
setup.py build
和setup.py install
安装了它
如果尝试创建客户端,则会出现以下错误:
Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import snap7
>>> c = snap7.client.Client()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/snap7/client.py", line 29, in __init__
self.library = load_library()
File "/usr/local/lib/python2.7/dist-packages/snap7/common.py", line 48, in load_library
return Snap7Library(lib_location).cdll
File "/usr/local/lib/python2.7/dist-packages/snap7/common.py", line 40, in __init__
raise Snap7Exception(msg)
snap7.exceptions.Snap7Exception: can't find snap7 library. If installed, try running ldconfig
然后我发出命令sudo ldconfig
来更新缓存文件/etc/ld.so.cache
,但错误仍然存在:(
include
指令放在每行的前端是否正确对不起,我的英语不好,请提前感谢!您尚未安装snap7库,这就是您出现此问题的原因 为了解决这个问题,我建议您以正确的方式安装它。我下面描述的是一种可怕的黑客方式,但我还没有找到时间改进 为了快速解决问题,你可以
- 下载此文件:
- unar it,和
- 在文件夹“build/unix”中
- 运行命令
make-f x86_64_linux.mk all
- 然后
cp.././build/bin/x86\u 64\u linux/usr/local/lib/
- 然后修改common.py以手动指向“init”函数中的“.so”文件
我在这个函数的开头添加了这一行:
lib\u location=“/usr/local/lib/libsnap7.so”
看起来您没有安装SNAP7库(它不包含在python-SNAP7中)
要将Raspberry Pi上的snap7库与python-snap7包装器一起使用,需要执行以下步骤:
snap7-full-1.2.1
在Pi命令行中:
wgethttp://sourceforge.net/projects/snap7/files/1.2.1/snap7-full-1.2.1.tar.gz/download
在Pi命令行中:
tar-zxvf snap7-full-1.2.1.tar.gz
arm\u v6\u linux.mk
用于RPI 1。对于RPI 2,使用arm\u v7\u linux.mk
)在Pi命令行中:
cd snap7-full-1.2.1/build/unix&&sudo make-f arm_v6_linux.mk all
lib
目录在Pi命令行中:
sudo cp../bin/arm_v6-linux/libsnap7.so/usr/lib/libsnap7.so
sudo cp../bin/arm_v6-linux/libsnap7.so/usr/local/lib/libsnap7.so
在Pi命令行中:
sudo-apt-get-install-python-pip
在Pi命令行中:
sudo-pip安装python-snap7
sudo chown -R $USER /usr/local/lib/python2.7/dist-packages/snap7
授予编辑snap7
库目录中文件的权限
然后编辑init下面的抱怨文件,并添加一行,如下所示:
def __init__(self):
lib_location='/usr/local/lib/libsnap7.so' # add this line here
这不是一个很好的答案。根据文档,您可以通过pip安装Snap7。
pip安装python-Snap7
。但是,即使通过pip安装Snap7,您也会收到错误“找不到Snap7库”,代码行类似于client=Snap7.client.client()
。但是行导入snap7
没有错误,因此它正在导入。
def __init__(self):
lib_location='/usr/local/lib/libsnap7.so' # add this line here