簡體   English   中英

找不到snap7庫-Linux

[英]can't find snap7 library - linux

我在Raspberry Pi版本B上運行Rapbian。

我按照此網頁上的說明下載了模塊python-snap7: 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" 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

收到此錯誤后,我進行了以下操作:

我在文件中添加了幾行,因此如下所示:

include /etc/ld.so.conf.d/*.conf
include /usr/local/lib/python2.7/dist-packages/snap7-full-1.2.1/
include /usr/local/lib/python2.7/dist-packages/snap7-full-1.2.1/release/Linux/ARMHF/Raspberry/
include /usr/local/lib/python2.7/dist-packages/snap7-full-1.2.1/src/lib/
include /usr/local/lib/python2.7/dist-packages/snap7-python/build/lib.linux-armv6l-2.7/snap7/
include /usr/local/lib/python2.7/dist-packages/snap7-python/

然后我發出命令sudo ldconfig來更新緩存文件/etc/ld.so.cache ,但錯誤仍然存​​在:(

  1. 每行的fornt中都include指令對嗎?
  2. 我沒有看到任何嚴重錯誤嗎?
  3. 我需要包括哪個圖書館? 我只是想到這里提供的: SourceForge Link 我選擇了第一個.tar.gz軟件包。

對不起,我的英語,謝謝!

好像您沒有安裝SNAP7庫(python-snap7中未包含該庫)

要將Raspberry Pi上的snap7庫與python-snap7包裝器一起使用,您需要執行以下步驟:

  1. 下載SNAP7庫,例如: snap7-full-1.2.1
    在Pi命令行中:
    wget http://sourceforge.net/projects/snap7/files/1.2.1/snap7-full-1.2.1.tar.gz/download

  2. 解壓下載的文件
    在Pi命令行中:
    tar -zxvf snap7-full-1.2.1.tar.gz

  3. 為樹莓編譯庫( arm_v6_linux.mk用於RPI 1.對於RPI 2使用arm_v7_linux.mk
    在Pi命令行中:
    cd snap7-full-1.2.1/build/unix && sudo make -f arm_v6_linux.mk all

  4. 將編譯的庫復制到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

  5. (可選)如果沒有,請安裝python pip
    在Pi命令行中:
    sudo apt-get install python-pip

  6. 為SNAP7 lib安裝python包裝器
    在Pi命令行中:
    sudo pip install python-snap7

您尚未安裝snap7庫,這就是您有此問題的原因。

為了解決此問題,建議您以適當的方式安裝它。 我在下面描述的是一種駭人聽聞的駭客方式,但我還沒有時間做得更好。

快速修復可以

  • 下載此文件: http : //sourceforge.net/projects/snap7/files/1.1.0/
  • 不知道,並且
  • 在文件夾“ build / unix”中
  • 運行命令make -f x86_64_linux.mk all
  • 然后cp ../../build/bin/x86_64_linux /usr/local/lib/
  • 然后修改common.py,以手動指向init函數中的.so文件

我在此函數開始時添加了以下行: lib_location = "/usr/local/lib/libsnap7.so"

我有一個解決方案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM