physics-data / faq

实验物理的大数据方法 FAQ
16 stars 17 forks source link

Debian Buster Vitables 无效 #5

Closed heroxbd closed 4 years ago

heroxbd commented 4 years ago

出错信息如下:

hz.h5 是一个正常的文件

vitables hz.h5                
Creating the Query results file...

Traceback (most recent call last):
  File "/usr/share/vitables/vitables/h5db/dbDoc.py", line 115, in openH5File
    h5file = tables.openFile(self.filepath, self.mode)
AttributeError: 'module' object has no attribute 'openFile'

Please, if you think it is a bug, report it to developers.

File creation failed due to unknown reasons!
Please, have a look to the last error displayed in the logger. If you think it's a bug, please report it to developers.
jiegec commented 4 years ago

建议用 pip3 install vitables 享受最新版本的 vitables

heroxbd commented 4 years ago

解决方案:

  1. 创建 /etc/apt/apt.conf.d/07repo,内容为

    APT {   
        Default-Release "buster";
    }
  2. /etc/apt/sources.list 里加入 Debian Sid

    ...
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ sid main non-free contrib
    ...
  3. apt install vitables/sid

注意,此时安装的 vitables 是来自 Debian Sid 的 3.0 版本,并非 Debian Buster 中的 2.1 版本。会有如下输出:

...
Selected version '3.0.0-1.1' (Debian:unstable [all]) for 'vitables'
  1. 确认 vitables 的版本
$ vitables --version
vitables 3.0.0
  1. 需要把动态链接库的 ABI-tag 去掉,Qt5 才能正常运行
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

参考:https://github.com/microsoft/WSL/issues/3023 https://superuser.com/questions/1347723/arch-on-wsl-libqt5core-so-5-not-found-despite-being-installed

heroxbd commented 4 years ago

Ubuntu 用户需要把系统升级到 20.04 LTS 版本。再安装 vitables 就是 3.0 版本了。

但是升级过程可能出问题,丢失数据,一定先做好备份。

需要重复 Debian 方案的第 5 步,把动态链接库的 ABI-tag 去掉,Qt5 才能正常运行

strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
Dragon-of-nature commented 4 years ago

Ubuntu 可能的解决方案: 首先卸载掉qtpy PyQt5 vitables

sudo apt remove vitables

一般来说这个时候qtpy PyQt5 pyside已经一同卸载掉了,如果不放心,可以使用如下命令尝试:

sudo apt remove python3-pyside2
sudo apt remove python3-qtpy
sudo apt remove python3-pyqt5

注意PyQt5那一行的命令,是小写 一般你会得到已经无事可做的反馈,也就是在卸载vitables的时候已经一同卸载掉了 接下来重新安装vitables,一定先用pip3安装,再使用apt安装

pip3 install vitables
sudo apt install vitables

经过以上流程,经历过 Module ... 'Pyside'cannot import name 'loadUiType' from 'qtpy.uic' 我的电脑能够成功运行vitables