Miniconda新环境导入Pandas报错:OMP_NUM_THREADS无法转整数
问题描述
使用Spyder 5.4.0搭配Miniconda3,通过conda create -n env_full anaconda创建新Python环境并在Spyder中成功激活后,numpy、matplotlib等包可正常使用,但导入pandas时触发报错:numexpr的utils.py文件尝试将环境变量OMP_NUM_THREADS的取值'5,3,2'转换为整数失败,该问题在基础环境中未出现,寻求解决方法。
完整报错堆栈
import pandas Traceback (most recent call last): File "C:\Users\User\AppData\Local\Temp\ipykernel_25804\3648170110.py", line 1, in <module> import pandas File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\__init__.py", line 48, in <module> from pandas.core.api import ( File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\api.py", line 27, in <module> from pandas.core.arrays import Categorical File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\arrays\__init__.py", line 1, in <module> from pandas.core.arrays.arrow import ArrowExtensionArray File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\arrays\arrow\__init__.py", line 1, in <module> from pandas.core.arrays.arrow.array import ArrowExtensionArray File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\arrays\arrow\array.py", line 42, in <module> from pandas.core.arraylike import OpsMixin File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\arraylike.py", line 23, in <module> from pandas.core.ops.common import unpack_zerodim_and_defer File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\ops\__init__.py", line 33, in <module> from pandas.core.ops.array_ops import ( File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\ops\array_ops.py", line 50, in <module> import pandas.core.computation.expressions as expressions File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\computation\expressions.py", line 20, in <module> from pandas.core.computation.check import NUMEXPR_INSTALLED File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\core\computation\check.py", line 5, in <module> ne = import_optional_dependency("numexpr", errors="warn") File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\pandas\compat\_optional.py", line 141, in import_optional_dependency module = importlib.import_module(name) File "C:\ProgramData\Miniconda3\envs\env_full\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\numexpr\__init__.py", line 44, in <module> nthreads = _init_num_threads() File "C:\ProgramData\Miniconda3\envs\env_full\lib\site-packages\numexpr\utils.py", line 156, in _init_num_threads requested_threads = int(os.environ['OMP_NUM_THREADS']) ValueError: invalid literal for int() with base 10: '5,3,2'
解决方法
临时修复(当前会话有效)
在导入pandas前重置环境变量为单个整数:
import os os.environ['OMP_NUM_THREADS'] = '1' # 可替换为CPU核心数等合理数值 import pandas
永久修复(针对conda环境)
- 打开命令行,激活目标环境:
conda activate env_full - 设置环境变量:
conda env config vars set OMP_NUM_THREADS=1(替换为你需要的线程数) - 重启Spyder并重新激活环境,设置即可生效
系统级环境变量检查
若系统级OMP_NUM_THREADS被设置为逗号分隔值,需修改系统环境变量:
- 右键「此电脑」→属性→高级系统设置→环境变量
- 在系统变量或用户变量中找到OMP_NUM_THREADS,修改为单个整数(如1、4)
- 重启电脑后生效
内容的提问来源于stack exchange,提问作者Galedon
相关产品推荐
相关产品推荐

