Python 版本和Quantstats不兼容的问题

1. 问题描述

Python版本是 3.8.13
默认安装Quantstats 是最新的版本:
QuantStats 0.0.77
安装部署Python环境的时候,使用Quantstats库,报错:

​import quantstats 报错 :


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\__init__.py", line 26, in <module>
    from . import stats, utils, plots, reports
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\stats.py", line 39, in <module>
    from . import utils as _utils
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\utils.py", line 24, in <module>
    from ._compat import safe_yfinance_download
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\_compat.py", line 17, in <module>
    import yfinance as yf
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\__init__.py", line 26, in <module>
    from .tickers import Tickers
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\tickers.py", line 26, in <module>
    from . import Ticker, multi
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\multi.py", line 30, in <module>
    import multitasking as _multitasking
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\multitasking\__init__.py", line 36, in <module>
    class PoolConfig(TypedDict):
  File "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\multitasking\__init__.py", line 44, in PoolConfig
    engine: Union[type[Thread], type[Process]]  # Execution engine
TypeError: 'type' object is not subscriptable

2. 问题处理

网上查询有两个可能性:

  • 升级Python版本:如果用户使用的是Python 3.8或更早版本,升级到3.9或更高版本可以解决这个问题,因为新版本支持这种类型注解。

  • 降级multitasking库:如果无法升级Python,可以尝试安装旧版本的multitasking库,可能旧版本不使用这种类型注解,从而避免错误。
    当前的 multitasking 版本也是最新的:0.0.12

(1)用3.8版本的Python

由于Python的版本不能更换,只能重新更新 multitasking 库。

为了保证兼容性,检查以前的环境用的版本:

QuantStats	0.0.62
multitasking	0.0.11

重新卸载安装,运行正常。

#####(2)用3.11版本的Python

重新在新的环境中,使用最新的Python
Python 3.11.7
安装
QuantStats 0.0.77
multitasking 0.0.12
运行 import quanstats 正常。

看起来还是版本兼容性的问题。

更多推荐