Когда я пытался вызвать модель Python Python в сценарии Matlab, я встретил ImportError: «dlopen: больше не может загружать объект со статическим TLS».
Это простой пример проблемы:
% matlab script test.m
clear classes
if count(py.sys.path,'') == 0
insert(py.sys.path,int32(0),'');
end
mod = py.importlib.import_module('test_python');
py.reload(mod);
py.test_python.myfunction;
# python script test_python.py
import torch.optim as optim
def myfunction():
print 'hello world 2!'
if __name__ == "__main__":
myfunction()
Сообщение об ошибке
Error using __init__><module> (line 84)
Python Error: ImportError: dlopen: cannot load any more object with static TLS
Error in test_python><module> (line 3)
import torch.optim as optim
Error in __init__>import_module (line 37)
__import__(name)
Скрипт python может быть запущен независимо, без ошибок.Если не импортировать torch (удалите строку «import torch.optim as optim»), ошибки не будет.Я использую MATLAB 2017a, Python 2.7 и Pytorch 1.0.1.post2