如何解决python包的静态TLS块错误中无法分配内存
Posted
技术标签:
【中文标题】如何解决python包的静态TLS块错误中无法分配内存【英文标题】:how to solve cannot allocate memory in static TLS block error for python packages 【发布时间】:2021-09-12 09:24:26 【问题描述】:我正在使用 ubuntu 20.04
和 conda 4.8.3
。我已经使用pip
(pip install --force-reinstall --no-cache-dir gmsh-dev
) 在我的一个环境中安装了一个包,但是当我尝试在 jupyter 笔记本中导入包时,我遇到了以下错误:
OSError: /home/alid/miniconda3/envs/new_env/lib/python3.9/site-packages/gmsh-git-Linux64-sdk/lib/libgmsh.so: cannot allocate memory in static TLS block
我不知道我的问题是什么,感谢任何帮助。
【问题讨论】:
【参考方案1】:基于how others solved similar problems,尝试添加到LD_PRELOAD
。
## set the env var for "new_env" environment
conda env config vars set -n new_env LD_PRELOAD='/home/alid/miniconda3/envs/new_env/lib/python3.9/site-packages/gmsh-git-Linux64-sdk/lib/libgmsh.so'
## test importing
conda run -n new_env python -c "import gmsh"
见the documentation on managing environment variables in Conda envs。
【讨论】:
亲爱的@merv,首先,非常感谢您花时间解决我的问题。我尝试了您的第一行代码,然后当我在终端中运行jupyter notebook
时遇到以下错误:/home/alid/miniconda3/envs/new_env/bin/python: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
GLIBCXX_3.4.26' not found (required by /home/alid/miniconda3/envs/new_env/lib/ python3.9/site-packages/gmsh-git-Linux64-sdk/lib/libgmsh.so)`.
@Ali_d 似乎是一个新问题,值得提出一个新问题以上是关于如何解决python包的静态TLS块错误中无法分配内存的主要内容,如果未能解决你的问题,请参考以下文章
torch/lib/libgomp-d22c30c5.so.1:无法在静态 TLS 块中分配内存
OSError:/lib/aarch64-linux-gnu/libgomp.so.1:无法在静态 TLS 块中分配内存
ImportError:/usr/lib/aarch64-linux-gnu/libgomp.so.1:无法在静态 TLS 块中分配内存