2014-06-21 106 views
2

我在樹莓派修訂B.找不到snap7庫 - Linux的

我下載的模塊中的python-snap7在此網頁上的指示運行Rapbian:Snap7 Installation

我試了兩次:有一次使用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. 是否正確指定每行的include指令?
  2. 有什麼樣的嚴重錯誤我只是看不到?
  3. 我需要包含哪個庫? 我只想到這裏提供的:SourceForge Link。我選擇了第一個.tar.gz包。

對不起,我的英語和提前謝謝!

回答

3

看起來你沒有安裝SNAP7庫(它不包括在python-snap7)

要在樹莓派使用snap7庫中的python-snap7包裝你需要做遵循以下步驟:

  1. 下載sNAP7庫 例如用於snap7-全1.2.1淠命令行

    wget的http://sourceforge.net/projects/snap7/files/1.2.1/snap7-full-1.2.1.tar.gz/download

  2. 解壓淠命令行下載的文件

    焦油-zxvf snap7-全1.2.1.tar 。廣州

  3. 編譯庫覆盆子(例如用於RPI 1 RPI 2使用arm_v7_linux.mk)
    淠命令行:
    CD snap7-全1.2.1 /建造/ UNIX
    須藤化妝-f arm_v6_linux.mk所有

  4. 複製編譯庫,以淠命令行lib目錄

    須藤CP ../bin/arm_v6-linux/libsnap7.so /usr/lib/libsnap7.so
    須藤CP ../bin/arm_v6-linux/libsnap7.so /usr/local/lib/libsnap7.so
  5. (可選)如果您沒有它,請安裝pyip pip
    在Pi命令行中:
    sudo apt-get安裝python-pip
  6. 在Pi命令行中安裝python wrapper for SNAP7 lib

    sudo pip insta LL中的python-snap7
1

你還沒有安裝snap7庫,這就是爲什麼你有這個問題。

爲了解決這個問題,我建議你以正確的方式安裝它。我在下面描述的是一種可怕的方式,但我還沒有時間去改善。

快速修復你可以

  • 下載這樣:http://sourceforge.net/projects/snap7/files/1.1.0/
  • unar它,並在文件夾
  • '建立/ UNIX'
  • 運行命令make -f x86_64_linux.mk all
  • 然後cp ../../build/bin/x86_64_linux /usr/local/lib/
  • 然後修改common.py爲了手動指向你的'。所以初始化‘功能」文件’

我加入這行,在此功能的開始:lib_location = "/usr/local/lib/libsnap7.so"

+0

這不是一個很好的答案。根據文檔,您可以通過pip安裝Snap7。 'pip安裝python-snap7'。但是,即使在通過pip安裝Snap7之後,您也會得到一行代碼如'client = snap7.client.Client()'的錯誤'can not find snap7 library'。但是'import snap7'這行沒有錯誤,所以它是導入的。 –

0

我得到了一個解決方案:

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