まっさらのxubuntu24にgitでlinux-gpibの4.3.7をインストールしたのですが,そのままではなんとpythonから見えないというトラブル発生。
症状としては,
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm=visa.ResourceManager()
>>> print(rm.list_resources())
()
>>>
のように,リソースがなにもみえない。
ここでそもそもいままでPyVISAがうまく動いてくれていたことに感謝しながら,pyvisaがどの様に計測器を検出しているかを調べてみた。
すると,pyvisaは,pyvisa-pyというバックエンドを明示的に指定しないといけないらしい。
(今までそんなことなかった気がする)
ResourceManagerについて調べてみる。
>>> print(rm)
Resource Manager of Visa Library at /usr/lib/x86_64-linux-gnu/libvisa.so.0.0.0
>>>
なんか良さげな感じの返事がきたのですが,これではダメらしい。
明示的にpyvisa-pyを指定するためには,'@py'を指定するらしい。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm=visa.ResourceManager('@py')
>>> print(rm)
Resource Manager of Visa Library at py
>>>
このように表示されたらOK。
ところが私の環境では,これでもlist_resources()でGPIBが出てこない。
そこで,linux-GPIBパッケージのpythonバインディングがうまくいっていない可能性を疑う。
pythonバインディングがうまく作成されていれば,importできるはず。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gpib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'gpib'
やはり。。。
linux-gpib-users/language/python以下にあるっぽいので,そこを覗いてみる。
~/Downloads/linux-gpib-git/linux-gpib-user/language/python$ ls
Gpib.py Makefile.am README gpibtest.py srq_board.py
Makefile Makefile.in gpibinter.c setup.py srq_device.py
ここにあたりをつけて,READMEを読んでみると,
This is a python GPIB interface to use gpib library calls from python language.
(Quick hacked)
27 January 2004 -- added functions gpib.readbin() and gpib.writebin(), as well
as variables gpib.ibsta() and gpib.ibcnt(). -- John Ackermann <jra@febo.com>
Installation:
'make' then 'make install'
とのことだったので,makeしてみたが,どうやらpython3-devがらみで足りないものがあった模様。
python3-devとpython3-setuptoolsをaptでインストールしたら無事にmakeとmake installができた。
その後,実は
$ sudo python3 setup.py install
という処理が必要。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm = visa.ResourceManager('@py')
>>> ls330=rm.open_resource('GPIB0::16::INSTR')
>>> ls330.write("*IDN?")
7
>>> ls330.read()
'LSCI,MODEL330,0,061694\r\n'
>>> ls330.close()
>>>
思ったより重いコンダラだった。
0 件のコメント:
コメントを投稿