Python 版本和Quantstats不兼容的问题
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, reportsFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\stats.py", line 39, in <module>from . import utils as _utilsFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\utils.py", line 24, in <module>from ._compat import safe_yfinance_downloadFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\quantstats\_compat.py", line 17, in <module>import yfinance as yfFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\__init__.py", line 26, in <module>from .tickers import TickersFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\tickers.py", line 26, in <module>from . import Ticker, multiFile "C:\Users\ThinkBook\anaconda3\envs\nlp\lib\site-packages\yfinance\multi.py", line 30, in <module>import multitasking as _multitaskingFile "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 PoolConfigengine: 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 正常。
看起来还是版本兼容性的问题。