So I searched on the internet, and found out the " patchelf " command.
As my binary files (generated with cx_Freeze) were in the same directory than my executable file, I created the script :

   for i in *so*
   do
         patchelf --set-rpath '.' $i
   done

Since, my standalone application can be launched on an "empty" openSuse system...

Note:
- this solution works with cx_Freeze 4.3.x, but don't with the 5.x versions
- I successfully created standalone application (for this same program) on various other linux platform (Debian, Mint, Ubuntu, Mageia, Fedora, CentOS) without any kind of problem. Only openSuse has needed this kind of operation so my standalone program can work out... I can't explain why.

May be this post could help some else.


Le 18/05/2017 à 10:03, Astalafiesta a écrit :
Hi there,

I'm trying to compile with cx_Freeze 4.3.3 on openSuse 42.1 (I use
wxPython3.0), but on an empty openSuse system, i can't run my program...

here is my setup.py file :

----------------------------------------------------------------------------------------------

import sys
from cx_Freeze import setup, Executable

path = sys.path
path += ["/usr/lib64"]

includes = []  # nommer les modules non trouves par cx_freeze
excludes = ['PyQt4', 'PyQt5', 'Tkinter', 'FixTk', 'tcl', 'tk',
'_tkinter', 'collections.abc']
packages = ['matplotlib.backends.backend_wxagg', 'numpy']

includefiles = ['./data/','./images/','./html/','./locale/','./logs/']

binpathincludes = []

if sys.platform == "linux2":
      binpathincludes += ["/usr/lib64"]
      binpathincludes += ["/usr/lib"]

base = 'Console'

options = {"path": path,
             "includes": includes,
             "excludes": excludes,
             "packages": packages,
             "include_files": includefiles,
             "bin_path_includes": binpathincludes,
             "optimize": 0,
             "silent": True
             }

executables = [
      Executable('MyProjetc.py', base=base)
]

setup(name='MyProject',
        version='1.0',
        description='Consumption Management',
        executables=executables,
        options={'build_exe': options}
        )

----------------------------------------------------------------------------------------------

but when i try to execute my program on an empty system (without
wxPython installed), i have this error :

    File
"/usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/Console.py",
line 27, in <module>
    File "JustConsum.py", line 4, in <module>
    File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk2/wx/__init__.py",
line 45, in <module>
    File "/usr/lib64/python2.7/site-packages/wx-3.0-gtk2/wx/_core.py",
line 4, in <module>
    File "ExtensionLoader_wx__core_.py", line 22, in <module>
    File "ExtensionLoader_wx__core_.py", line 14, in __bootstrap__
ImportError: libwx_gtk2u_adv-suse.so.1: cannot open shared object file:
No such file or directory

----------------------------------------------------------------------------------------------

What i don't understand is that the file "libwx_gtk2u_adv-suse.so.1" is
indeed at the root directory :

-rwxrwx--- 1 regis users 1918960 25 oct.   2015 libwx_gtk2u_adv-suse.so.1

------------------------------------------------------------------------------------------------

Any idea ?

Thx a lot



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
cx-freeze-users mailing list
cx-freeze-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cx-freeze-users

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
cx-freeze-users mailing list
cx-freeze-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cx-freeze-users

Reply via email to