【问题标题】:NI VISA + pyVisa on Mac OS X (Snow Leopard)Mac OS X (Snow Leopard) 上的 NI VISA + pyVisa
【发布时间】:2011-04-04 15:57:19
【问题描述】:

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

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

麻烦的是NI网站有NI VISA支持listed for Mac OS X。但是在他们的支持页面中,他们并未将 OS X 列为受支持的操作系统。

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

【问题讨论】:

  • 我很困惑。 Debian 是从哪里来的?
  • @nekomatic:Debian 在 python 中的意思是 Mac OS X。如果你执行 os.version() OS X 返回 debian。抱歉有任何混淆,我将编辑问题以删除该符号。

标签: python macos osx-snow-leopard visa


【解决方案1】:

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

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

为了实现这一点,我必须进行一些更改,这些更改在 NI 的网站(至少我可以找到)上没有详细记录。最重要的是 NI-VISA 5.0 安装的 VISA 库的名称。它位于/Library/Frameworks/Visa.framework/VISA。正如pyVisa文档中提到的那样,我没有尝试修改nsi文件以自动链接到这个库。

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

系统设置:

运行virutalenv + virtualenvwrapper 的Python 2.7。雪豹 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 后,我发现了同样的问题,每次都必须手动加载库。这让我觉得我错过了一些东西。

【讨论】:

    【解决方案2】:

    我在 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
    >>>
    

    【讨论】:

    • 看起来我需要强制 python 使用 32 位,根据以下文章:bardagjy.com/?p=1245
    • 抱歉没有回复我没有看到这篇文章。现在运行 10.8.4 它仍然对我有用。请注意,此安装仍使用系统的 Python 2.7.2。
    【解决方案3】:

    在 Mountain Lion 10.8.5 中运行良好。

    1. 安装 NI-VISA Runtime 5.4。
    2. 安装 pyvisa

    首先制作 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2010-11-24
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多