返回

Ubuntu VPS 安装 KoBo ToolBox 常见问题及解决方法

Linux

在 Ubuntu 上使用 Pip 时遇到的常见问题

问题

在 Ubuntu VPS 上安装 KoBo ToolBox 时,可能会遇到以下错误:

> Traceback (most recent call last):
> File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
> from apport.fileutils import likely_packaged, get_recent_crashes
> File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
> from apport.report import Report
> File "/usr/lib/python3/dist-packages/apport/report.py", line 32, in <module>
> import apport.fileutils
> File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 12, in <module>
> import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
> File "/usr/lib/python3/dist-packages/requests_unixsocket/__init__.py", line 1, in <module>
> import requests
> File "/usr/lib/python3/dist-packages/requests/__init__.py", line 95, in <module>
> from urllib3.contrib import pyopenssl
> File "/usr/local/lib/python3.8/dist-packages/urllib3/contrib/pyopenssl.py", line 43, in <module>
> import OpenSSL.SSL  # type: ignore[import-untyped]
> File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
> from OpenSSL import crypto, SSL
> File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1553, in <module>
> class X509StoreFlags(object):
> File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1571, in X509StoreFlags
> NOTIFY_POLICY = _lib.X509_V_FLAG_NOTIFY_POLICY
> AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'

这种错误是由 pyopenssl 库的旧版本引起的,它不兼容 Ubuntu 上较新的 OpenSSL 版本。

解决方法

要解决此问题,请按照以下步骤操作:

  1. 检查并更新 pip 和 Python: 确保 pip 和 Python 已更新到最新版本。你可以使用以下命令:

    pip install --upgrade pip
    python -m pip install --upgrade pip
    
  2. 重新安装 pyopenssl: 使用以下命令重新安装 pyopenssl:

    sudo apt-get install --reinstall python3-pyopenssl
    
  3. 检查 OpenSSL 版本: 确保 OpenSSL 版本是 1.1.0 或更高。你可以使用以下命令检查:

    openssl version
    
  4. 清理 pip 缓存: 清除 pip 缓存可以解决某些问题。使用以下命令清理缓存:

    pip cache purge
    
  5. 检查网络连接: 确保你的系统可以访问互联网。你可以尝试 ping 谷歌或其他网站。

  6. 查看日志文件: KoBo ToolBox 和 Docker Compose 会生成日志文件。查看这些文件以获取有关错误的更多信息。通常,这些文件位于 /var/log/ 目录中。

  7. 检查 SSL 证书: 确保你的系统信任用于 SSL 连接的证书。你可以使用以下命令检查证书:

    openssl s_client -showcerts -servername <hostname> <port>
    
  8. 禁用 SSL 验证: (不推荐)如果你已经尝试了所有其他方法,你可以尝试禁用 SSL 验证。然而,这会使你的系统面临安全风险,因此不建议这样做。你可以使用以下命令禁用 SSL 验证:

    export REQUESTS_CA_BUNDLE=/dev/null
    

其他提示

  • 确保你的系统中安装了所有依赖项。
  • 尝试使用不同的 Python 虚拟环境。
  • 咨询 KoBo ToolBox 和 Docker Compose 文档以获取更多信息。
  • 如果问题仍然存在,请在相关论坛或 GitHub 问题中寻求帮助。

常见问题解答

  1. 为什么我收到 "module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY' " 错误?

    此错误是由 pyopenssl 库的旧版本引起的,它不兼容 Ubuntu 上较新的 OpenSSL 版本。

  2. 如何更新 pyopenssl?

    你可以使用以下命令重新安装 pyopenssl:

    sudo apt-get install --reinstall python3-pyopenssl
    
  3. 如何检查 OpenSSL 版本?

    你可以使用以下命令检查 OpenSSL 版本:

    openssl version
    
  4. 如何禁用 SSL 验证?

    (不推荐)你可以使用以下命令禁用 SSL 验证:

    export REQUESTS_CA_BUNDLE=/dev/null
    
  5. 为什么禁用 SSL 验证不推荐?

    禁用 SSL 验证会使你的系统面临安全风险,因为它允许不受信任的证书通过验证。