Pyinstaller: generate -exe file + folder (in --onefile mode)

前端 未结 2 1081
我在风中等你
我在风中等你 2020-12-02 17:54

Now i\'m working with Pyinstaller. I have an script which get images from a img folder..

/python
|----/img
|----|----icon1.ico
|----|----icon2.ico
|----maint         


        
2条回答
  •  佛祖请我去吃肉
    2020-12-02 18:29

    You have to solve many issues to get this working. For example:

    • Getting the right resource path
    • Adding data

    The first issue is (as mentionned) solved by adjusting paths depending on execution mode.

    def app_path(path):
        frozen = 'not'
        if getattr(sys, 'frozen', False):
                # we are running in executable mode
                frozen = 'ever so'
                app_dir = sys._MEIPASS
        else:
                # we are running in a normal Python environment
                app_dir = os.path.dirname(os.path.abspath(__file__))
        return os.path.join(app_dir, path)
    

    For the second issue instead of tree i use the wildcard operator (*) to add what i need.

    added_files = [
             ( './pics/*', 'pics' ),
             ( './db/*', 'db' ),
             ]
    

    then in Analysis,

    datas = added_files
    

    A thorough answer is quite long. I've written this article to show in some minute details what i went through to solve the issue.

提交回复
热议问题