Tableau 数据提取 API (Python 和 Linux) 报错“文件过短”

1 投票
1 回答
1706 浏览
提问于 2025-04-17 21:16

最近,Tableau把一些开发者工具从只支持Windows扩展到了Linux。下载了适用于Linux(64位,版本8.1)的Tableau数据提取API库(Python 2.7)后,我解压了文件,并使用标准的命令'python setup.py install'安装了这些库。

但是,当我尝试运行在Windows上能正常工作的代码时,出现了以下错误:

Traceback (most recent call last):
File "apache.py", line 280, in <module>
  print create_tableau(tsvfile)
File "apache.py", line 136, in create_tableau
  import dataextract as tde
File "/usr/local/lib/python2.7/dist-packages/dataextract/__init__.py", line 15, in <module>
  from Base import *
File "/usr/local/lib/python2.7/dist-packages/dataextract/Base.py", line 17, in <module>
  from . import StringUtils
File "/usr/local/lib/python2.7/dist-packages/dataextract/StringUtils.py", line 17, in <module>
  tablib = libs.load_lib
File "/usr/local/lib/python2.7/dist-packages/dataextract/Libs.py", line 35, in load_lib
  self.lib = ctypes.cdll.LoadLibrary(self.lib_path)
File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
  return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
  self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python2.7/dist-packages/dataextract/lib/../lib/libicuio.so.50: file too short

我该如何解决这个'文件太短'的错误呢?

1 个回答

1

在复制或提取库文件时,出现了一个错误,实际上这些链接是文件。类似的例子可以在这里找到。

你需要删除那些本该是链接的文件,然后再重新建立链接。

cd /usr/local/lib/python2.7/dist-packages/dataextract/lib/../lib/

rm libicudata.so.50 && ln -s libicudata.so.50.1.2 libicudata.so.50
rm libicui18n.so.50 && ln -s libicui18n.so.50.1.2 libicui18n.so.50
rm libicuio.so.50 && ln -s libicuio.so.50.1.2 libicuio.so.50
rm libicule.so.50 && ln -s libicule.so.50.1.2 libicule.so.50
rm libiculx.so.50 && ln -s libiculx.so.50.1.2 libiculx.so.50
rm libicutu.so.50 && ln -s libicutu.so.50.1.2 libicutu.so.50
rm libicuuc.so.50 && ln -s libicuuc.so.50.1.2 libicuuc.so.50

撰写回答