I’m afraid that there’s no nice switch in the spec file to toggle between 
onefile and onedir mode. Converting spec files is possible but you’d be 
better just creating a new spec file. And for the record, pyinstaller 
program.spec ignores --onefile (and almost all other flags).
​
On Tuesday, February 8, 2022 at 4:49:34 PM UTC [email protected] wrote:

> You need to move all of the binaries, zipfiles and datas into the EXE, 
> make sure exclude_binaries is False, and delete the COLLECT.
>
> [image: image.png]
>
>
>
> On Tue, Feb 8, 2022 at 8:26 AM Paul Fishback <[email protected]> wrote:
>
>> Thanks. Yes, my usual approach has been to first create the .spec file 
>> and then modify it as needed. Here's a summary of what I tried using a 
>> script, hello_world.py, which creates a simple tkinter gui with a close 
>> button. 
>>
>> 1. pyinstaller hello_world.py --one file. 
>> This works fine of course--the dist folder contains a single executable.
>>
>> 2. pyinstaller hello_world.spec
>> Now the dist folder contains a folder, hello_world, not a single 
>> executable. This isn't what I want.
>>
>> 3. pyinstaller hello_world.spec --one file.
>> Same outcome as (2)
>>
>> In my more complicated application, I'll need to modify the spec file to 
>> include numerous data files, specify hidden imports, and add an icon. So 
>> the ultimate question is how do I modify the spec file so that dist 
>> contains a single executable? In other words, what modification to the spec 
>> file accomplishes the same thing as using the command line option --onefile?
>>
>>
>>
>> On Tue, Feb 8, 2022 at 3:47 AM Eric Fahlgren <[email protected]> wrote:
>>
>>> On Mon, Feb 7, 2022 at 7:48 AM Paul Fishback <[email protected]> 
>>> wrote:
>>>
>>>> So, following the steps at 
>>>> https://pyinstaller.readthedocs.io/en/stable/spec-files.html, I could 
>>>> add the run time option -F,--onefile in my spec file by defining
>>>>
>>>> options=[('F' ,None,'OPTION')]
>>>>
>>>> and including this as a parameter of my EXE instance, e.g. 
>>>>
>>>> exe = EXE(pyz,
>>>>           a.scripts, 
>>>>           [],
>>>>           options,...)
>>>>
>>>
>>> I believe that 'options' is for Python runtime, not for PyInstaller 
>>> command line.  You need to generate a .spec file that aggregates the 
>>> binaries into the EXE phase.   The easiest way to do that is 
>>>
>>> > pyinstaller --onefile myscript.py
>>>
>>> and then use the 'myscript.spec' as the basis for any further 
>>> modifications.  Once you have the .spec file, then feed it to pyinstaller, 
>>> instead of the script.
>>>
>>> > pyinstaller myscript.spec
>>>
>>> -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "PyInstaller" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/pyinstaller/1D5iK9Uv2TE/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/pyinstaller/CAP2Qz%2BVW67vrO25M52ubqT9y5DmaEUFX1txwW5fEnAnfZEsmEg%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/pyinstaller/CAP2Qz%2BVW67vrO25M52ubqT9y5DmaEUFX1txwW5fEnAnfZEsmEg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>>
> You received this message because you are subscribed to the Google Groups 
>> "PyInstaller" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/pyinstaller/CACWiRmn_HGQPmQpg19dTvGu0dPeC3n3uFZ%2BdwAsXseJT52Nb%3Dg%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/pyinstaller/CACWiRmn_HGQPmQpg19dTvGu0dPeC3n3uFZ%2BdwAsXseJT52Nb%3Dg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyinstaller/68e55c58-fb7e-4381-bcfa-2a223e482c42n%40googlegroups.com.

Reply via email to