0

我有一个我无法解决的问题,我希望有人给我一个提示什么是错的。

我必须在 SLES 服务器上安装 tabpy。我已经安装了 python-3.8.12、openssl-1.1.1l 和 tabpy 2.4.0。我通过说明:https ://tableau.github.io/TabPy/docs/server-install.html

不幸的是,当我运行 tabpy 时,我收到以下错误消息:

    /infa/mgmt/pythons/python-3.8.12/bin> ./tabpy
Traceback (most recent call last):
  File "./tabpy", line 8, in <module>
    sys.exit(main())
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/site-packages/tabpy/tabpy.py", line 43, in main
    app = TabPyApp(config)
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/site-packages/tabpy/tabpy_server/app/app.py", line 76, in __init__
    self._parse_config(config_file)
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/site-packages/tabpy/tabpy_server/app/app.py", line 243, in _parse_config
    parser = configparser.ConfigParser(os.environ)
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/configparser.py", line 639, in __init__
    self._read_defaults(defaults)
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/configparser.py", line 1219, in _read_defaults
    self.read_dict({self.default_section: defaults})
  File "/infa/mgmt/pythons/python-3.8.12/lib/python3.8/configparser.py", line 752, in read_dict
    raise DuplicateOptionError(section, key, source)
configparser.DuplicateOptionError: While reading from '<dict>': option 'socks_proxy' in section 'DEFAULT' already exists

我使用不同版本的 python(3.9.9 和 3.8.1)以及不同版本的 tabpy 进行了测试。错误消息始终相同。

我还运行了 ./tabpy --config=infa/mgmt/pythons/python-3.8.12/bin/file.conf 我在 tabpy wiki 上提供了一个配置 - 问题是一样的。

如果有人知道问题出在哪里,或者能够指导我获得适当的知识,我会接受它。

干杯!

4

1 回答 1

0

我在 Pypy 3.8 中遇到了这个问题,并深入研究了代码以找到根本原因。
问题来自具有不同情况的重复环境变量(在我的情况下为 http_proxy 和 HTTP_PROXY)。这通常在 Linux 上非常好,并且正在使用旧版本的 configparser,但由于某种原因,它附带了 pypy 扼流圈。

正如您在堆栈跟踪中看到的那样,您的 ConfigParser 实例将 os.environ 作为默认字典(这就是最后一行中的<dict>所指的内容),因此您可能会遇到同样的问题。

unset socks_proxy在运行命令之前尝试。

于 2022-01-18T15:12:32.747 回答