Search code examples
pythonpyinstallerexe

I have problem with Pyinstaller in python


I have a question if I use Pyinstaller to convert python file to exe will convert the modules with or not? , because i have python file with a lot of modules and i want to convert it how i can do it and avoiding this issue, Thank u.

    import requests

error:

    ImportError: No module named requests

.


Solution

  • After discussion in comments basically the error is occurring when you try to open the generated file in another computer, however your aren't using any virtual environment so you can install the requirements and try to rebuild again but rather you want a stanalone exe file.

    For that use :

       pyinstaller --onefile your-script.py 
    
    
       # or pyinstaller -F your-script.py 
       
       ## this should generate a stand alone executable file located in the dist folder.
    

    About your concerns on how pyinstaller works

    Does pyinstaller make copies of modules when building ?

    The answer is simply : yes , as mentioned in the docs here PyInstaller reads a Python script written by you. It analyzes your code to discover every other module and library your script needs in order to execute. Then it collects copies of all those files – including the active Python interpreter! – and puts them with your script in a single folder, or optionally in a single executable file.

    However, the variations of Python and third-party libraries are endless and unpredictable, if something goes wrong you can learn how to fix those issues by reading this page on the docs here

    What to generate ?

    you can read more here

    1. Create a one-folder bundle containing an executable (default), -D, --onedir

    2. Create a one-file bundled executable. you need to use -F ore --onefile

    Finally

    I highly encourage you to use separate virtual environment for each project.