+ if (filename.length() > 12 &&
+ filename.compare(0, 11, "libpython3.") == 0 &&
+- filename.compare(filename.length() - 3, 3, ".so") == 0 &&
+- filename.compare(filename.length() - 6, 6, ".dylib") == 0)
++ filename.find(".so", 10) != std::string::npos)
+ {
+- library = sLibrary + filename;
++ library = sLibrary + "/" + filename;
+ shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL);
++ if (shared_lib_)
++ {
++ break;
++ }
+ }