2016-08-23 7 views
0

Как передать команды gcc через аргументы cx_Freeze 'disutils.core.setup()'?Как передать команды gcc через cx_Freeze

В частности, я хочу, чтобы мой .exe файл использовать относительные пути в отладочных сообщений, а не путь, где я построить .exe файл

Вот мой setup.py файл:

setup(
name="test", 
packages=['test'], 
package_data={'': ['*.py', '*.txt', '*.sample', '*.mo', 'README.rst']}, 
options={"build_exe": { 
    "icon": r"test\resources\test.ico", 
    "compressed": True, 
    "create_shared_zip": True, 
    "copy_dependent_files": True, 
    "include_files": [ 
     ('test/i18n/', 'i18n/'), 
     ('test/resources/', 'resources/'), 
     ('test/client.conf.sample', 'client.conf.sample'), 
    ], 
    "excludes": [ 
     'urllib.sys', 
     'urllib._sre', 
     'urllib.array', 
     'urllib._locale', 
     'urllib.datetime', 
     'urllib._functools', 
     ] 
    } 
}, 
executables=Executable(script=script),) 

ответ

1

Вам нужно добавьте еще один вариант к тем, которые у вас уже есть:

replace_paths = [("*", "")] 

Это заменит все пути относительными путями. Вы можете также сделать более интересные вещи, как:

replace_paths = [ 
    ("/path/to/python/lib", "<Python>"), 
    ("/path/to/my/script", "<Script>") 
] 

В сущности, первый элемент кортежа является частью пути, который должен быть заменен значением во втором элементе кортежа. Значение * в значении поиска приводит к замене всех путей на значение замены.

+0

Спасибо. Так приятно, когда люди, которые создают открытые проекты, предлагают поддержку другим. Скоро попробую! – nikolaevra