Mac OS X上的NI VISA + pyVisa(Snow Leopard)

时间:2011-04-04 15:57:20

标签: python macos osx-snow-leopard visa

是否有人使用NI GPIB模块在Snow Leopard上运行pyVisa成功?

根据我在NI网站上阅读的所有论坛,看来NI VISA和pyVisa的组合不能在Max OS X上完成。

令人不安的部分是NI网站拥有NI VISA支持listed for Mac OS X。但是,在他们的支持页面中,他们没有将OS X列为受支持的操作系统。

任何评论或帮助将不胜感激,因为我真的想摆脱不得不使用Windows进行此软件开发以及允许跨平台支持。

3 个答案:

答案 0 :(得分:6)

事实证明,NI-VISA 5.0在10.6.6上运行良好。

我遇到的问题是在调用pyVisa的签证时.Instrument(“GPIB :: 1”)它说找不到图书馆。但是,当调用visa.get_instruments_list()时,我的GPIB适配器显示为GPIB0。使用它作为设备我能够正确连接。

为了实现这一目标,我必须做出一些在NI网站(我至少可以找到)上没有记录的变化。最重要的是NI-VISA 5.0安装的VISA库的名称。它位于/Library/Frameworks/Visa.framework/VISA。我没有尝试修改nsi文件以自动链接到此库,如pyVisa文档所述。

我无法用pip安装pyvisa。我不得不使用easy_install。如果有人用pip成功安装pyvisa,我真的很想知道如何!

系统设置:

Python 2.7运行virutalenv + virtualenvwrapper。雪豹10.6.6。 NI-VISA 5.0

示例代码:

from pyvisa.vpp43 import visa_library
visa_library.load_library("/Library/Frameworks/Visa.framework/VISA")
import visa
visa.get_instruments_list() # Yields: ['ASRL1', 'ASRL2', 'ASRL3', 'ASRL4', 'GPIB0::1']
temp = visa.Instrument("GPIB0::1")
print temp # Yeilds: Instrument("GPIB0::1::INSTR")

更新:
移动到Lion后,我发现了相同的问题,每次都必须手动加载库。这让我觉得我错过了什么。

答案 1 :(得分:3)

我在OSX 10.8.2(Mountain Lion)上安装了NI-VISA-5.0.0,NI-VISA-5.1.2和PyVisa-1.4,我收到以下错误

>>> import pyvisa.vpp43 as vpp43
>>> 
>>> 
>>> vpp43.visa_library.load_library('/Library/Frameworks/VISA.framework/VISA')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/PyVISA-1.4-py2.7.egg/pyvisa/vpp43.py", line 146, in load_library
    self.__lib = self.__cdecl_lib = cdll.LoadLibrary(path)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 353, in __init__
OSError: dlopen(/Library/Frameworks/VISA.framework/VISA, 6): no suitable image found.  Did find:
    /Library/Frameworks/VISA.framework/VISA: no matching architecture in universal wrapper
    /Library/Frameworks/VISA.framework/VISA: no matching architecture in universal wrapper
>>>

答案 2 :(得分:1)

在Mountain Lion 10.8.5中工作正常。

  1. 安装NI-VISA Runtime 5.4。
  2. 安装pyvisa
  3. 首先制作一个Python的i386二进制文件(内置mac os)以强制Python进入32位模式。

    $ lipo -thin i386 -output python-i386 /usr/bin/python2.7
    $ ./python-i386
    

    然后:

    # make sure pyvisa is available in the built-in python
    import sys
    sys.path.append('path-to-your-pyvisa')
    
    from pyvisa.vpp43 import visa_library
    visa_library.load_library("/Library/Frameworks/Visa.framework/VISA")
    import visa
    visa.get_instruments_list()