diff options
author | Lipu Fei <lipu.fei815@gmail.com> | 2019-09-04 19:25:29 +0300 |
---|---|---|
committer | Lipu Fei <lipu.fei815@gmail.com> | 2019-09-04 20:20:59 +0300 |
commit | b309680fb7602a9d773d8a03166259c2364ad656 (patch) | |
tree | 76208f735e18c9cdbdc63f2b4b1c2386d5d6c38c | |
parent | bb11c695e24b3df92e388ecaf28dba9fb9e90c88 (diff) |
Fix CTM loading on Linux
CURA-6739
Note that this doesn't work with Python 3.5.7, but with 3.6 and 3.7. To
make Python 3.5.7 work, a fix needs to be backported from 3.6 for
ctypes.util.find_library() for Linux.
-rwxr-xr-x | cura_app.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/cura_app.py b/cura_app.py index 42581f134e..44bef048f2 100755 --- a/cura_app.py +++ b/cura_app.py @@ -155,5 +155,20 @@ if Platform.isOSX() and getattr(sys, "frozen", False): path_list.append(search_path) os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(path_list) +# WORKAROUND: CURA-6739 +# Similar CTM file loading fix for Linux, but NOTE THAT this doesn't work directly with Python 3.5.7. There's a fix +# for ctypes.util.find_library() in Python 3.6 and 3.7. That fix makes sure that find_library() will check +# LD_LIBRARY_PATH. With Python 3.5, that fix needs to be backported to make this workaround work. +if Platform.isLinux() and getattr(sys, "frozen", False): + old_env = os.environ.get("LD_LIBRARY_PATH", "") + # This is where libopenctm.so is in the AppImage. + search_path = os.path.join(CuraApplication.getInstallPrefix(), "bin") + path_list = old_env.split(":") + if search_path not in path_list: + path_list.append(search_path) + os.environ["LD_LIBRARY_PATH"] = ":".join(path_list) + import trimesh.exchange.load + os.environ["LD_LIBRARY_PATH"] = old_env + app = CuraApplication() app.run() |