最近要把项目单独在linux运行测试,就把项目跟依赖传入到linux里的docker容器中,sys.path.insert()添加完依赖的路径后运行项目,
出现这个问题,后来搜了很多,看到要升级gcc我也跟着升级一遍,但是容器内升级出错了,重新装了一遍,后来又查了资料,说要改变一下包的导入顺序
1
import cv2
from sklearn.cluster import DBSCAN
2
from sklearn.cluster import DBSCAN
import cv2
但是改变顺序之后也还是同样的问题。
后来我就看项目的运行流程,抱着试一试的心态,然而问题就解决了
比如,项目的入口文件是main.py,但是我在main.py中调用了main_1.py,然后在main_1.py中导入的上述的两个包,无论顺序怎样就会出现 "ImportError: dlopen: cannot load any more object with static TLS"这个错误,我就把这两个包cv到main.py入口文件,第一时间加载导入,至此问题成功解决。