36

I have 2 python versions installed under my mac osx sierra: python 3.5 python 2.7

I installed pyinstaller under python3.5 with this command:

python3.5 -m pip install pyinstaller

If I run again the same command I'm getting:

Requirement already satisfied: pyinstaller in ./lib/python3.5/site-packages Requirement already satisfied: setuptools in ./lib/python3.5/site-packages (from pyinstaller)

That to me means that is is installed under python 3.5 and ready to be used.

When I run this command:

python3.5 -m pyinstaller mypython35script.py

I'm getting: /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5: No module named pyinstaller

Why? What I'm doing wrong?

Neuron
  • 5,141
  • 5
  • 38
  • 59
pempem
  • 403
  • 1
  • 4
  • 8

17 Answers17

96

Their package name have caps in it (not sure if it's very PEP8 tho..). This should work if you can't find the pyinstaller executable script:

python -m PyInstaller your_script.py 
Guillaume Lebreton
  • 2,586
  • 16
  • 25
45

I had same issue here, and i tried everything, but finally i found the solution :

enter image description here

I had to downgrade pip from version 19 to 18.1 :

pip install pip==18.1

Then install PyInstaller :

pip install pyinstaller

.

As you see i managed to install it : enter image description here .

After that you can upgrade your pip again :

python -m pip install --upgrade pip
mounirboulwafa
  • 1,587
  • 17
  • 18
  • @Paolo i tried everything to fix it, and this is the only thing that worked for me. – mounirboulwafa Jan 30 '19 at 23:07
  • Fine, for this reason accept (sorry I said "check") your answer. To mark an answer as accepted, click on the check mark beside the answer to toggle it from greyed out to filled in (green). For StackOverflow stats it means one more successful answer on the platform. – Paolo Jan 31 '19 at 07:42
6

PyInstaller is case sensitive when being executed from the python3 - m method. You need to run it as follows.


python3 -m PyInstaller yourscript.py


If you want directly execute from the terminal you need to install it as follows.


python3 -m pip install pyinstaller or pip3 install pyinstaller


Following that, you need to set your global python executable to python3.


pyinstaller yourscript.py


3

I had the same trouble, so I tried to do as @mounirboulwafa says.

I had to downgrade pip from version 19 to 18.1 :
pip install pip==18.1

But I got this error again even during pip 18 install!

So I readed console logs again and saw some lines about user, permission etc. And tried to start cmd as admin, and repeat install pyinstaller.

It works!

So typical thing surprisely resolved the sitation. Hope it helps somebody.

2

Finally, this version drops support for Python 2.7, which is end-of-life since January 2020.. The minimum required version is now Python 3.5. The last version supporting Python 2.7 was PyInstaller 3.6.

pip install pyinstaller==3.6

So if anybody using python 2.7 version, Just install pyinstaller3.6 version and run it will work fine.

2

You need to go to the file that your .py is, and pyinstaller need to be capitalized like this "PyInstaller"

Full command: python -m PyInstaller --onefile [yourfile.py]

Put -w behind the --onefile if you want on console file

f.khantsis
  • 3,256
  • 5
  • 50
  • 67
Sai Linn
  • 21
  • 1
1

You should navigate into your scripts folder and open command window there (by clicking right mouse button while holding down shift key) and write in there:

pyinstaller mypython35script.py

If the script is in another location drag your script into the command window after typing pyinstaller. Hope this helps.

Dragon
  • 1,194
  • 17
  • 24
  • If I run that command is going to pick up the default OSX python version that I don't / can't use. – pempem Jun 25 '17 at 14:43
  • For python 2.7 you must be having a folder such as Python27. But for Python 3.5 you may be having a folder like Python35 (or Python35-32). In that folder you will find similar contents. Find in there the script folder then do the necessary operations. Nevertheless, if the exe is created once it doesn't really concern which python version it was used to make (as long as the **dist** folder is not messed up with) – Dragon Jun 25 '17 at 14:50
1

Right now the only way I found to make it works is to: navigate to:

/Library/Frameworks/Python.framework/Versions/3.5/bin

run pyinstaller mypython35script.py

cheers d.

ps I still don't know why is not working in the way I described in my first post.

pempem
  • 403
  • 1
  • 4
  • 8
  • In you question you mentioned the error as **No module named pyinstaller** which is because the pyinstaller module was not installed for the python 3.5 version. – Dragon Jun 25 '17 at 14:55
1

Rename your pyinstaller to pyinstaller35 and also rename your pyinstaller-script.py to pyinstaller35-script.py inside the scripts directory which is inside the python3.5 installation directory. Now add the scripts directory to the system path. Now you can run it as pyinstaller35 yourfile.py -F

sajeewasp
  • 51
  • 5
1

From Anaconda prompt the following works for me. Run the following command after navigating to the location of the module

pyinstaller --onefile mypython35script.py
V111
  • 11
  • 2
1

In my case I just opened cmd in Admin mode and re-ran the below cmd and it worked.

pip install pyinstaller

Anuj
  • 149
  • 2
  • 11
1

This works in my case with pip version 19.0.1

cmd => rightclick => with admin rights

Enter in cmd: "pip install pyinstaller"
Hardik Patel
  • 3,868
  • 1
  • 23
  • 37
1

PyInstaller having issues with pip 19.0 (https://github.com/pyinstaller/pyinstaller/issues/4003)

Downgrade pip to 18.1 version works fine.

Mikhail Tokarev
  • 2,843
  • 1
  • 14
  • 35
1

I had the same problem, turns out module names are CASE-SENSITIVE which I didn't know, so instead of cmd -

python3.5 -m pyinstaller mypython35script.py

you're supposed to run

python3.5 -m PyInstaller mypython35script.py

Turns out there was no issue with Installation as it showed

Requirement already satisfied: pyinstaller in ./lib/python3.5/site-packages Requirement already satisfied: setuptools in ./lib/python3.5/site-packages (from pyinstaller)

pip install searches for the module name in PyPi (Python Package Index) where case doesn't matter

Please feel free to correct me or add comments as I am fairly new to Python and command line

1

None of the solutions have worked for me so i tried to uninstall pyinstaller via the command

py -m pip uninstall pyinstaller

The last path they gave was a path to the script "pyinstaller.exe". So all I did was drag and drop and it worked!

Connell.O'Donnell
  • 3,603
  • 11
  • 27
  • 61
Y1z1n
  • 11
  • 1
0

After some research as of 12/20/2022 it seems to be not supported for my py version 3.10

Python: 3.7-3.11. Note that Python 3.10.0 contains a bug making it unsupportable by PyInstaller. PyInstaller will also not work with beta releases of Python 3.12. https://github.com/pyinstaller/pyinstaller

Naruto Uzumaki
  • 442
  • 4
  • 7
0

Just downgrade your python version and try it again. This will work, if not just download python3.8 and give it a try.

Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community May 18 '23 at 06:24