可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Does anyone know why pyinstaller
immediately fails after installed via pip
via anaconda 32bit
?
I installed pyinstaller via pip install pyinstaller
through the anaconda command prompt on Windows 64 bit using 32 bit anaconda (because I want to create 32 bit executables)
Yes I read pyinstaller --version failed to create a process and pip/easy_install failure: failed to create process and How to install pyinstaller using pip
I did not rename any files I installed anaconda 15 mins ago, pycharm 10 mins ago, and pyinstaller 5 mins ago. I uninstalled pyinstaller via pup uninstall and reinstalled in the anaconda scripts folder, this did nothing.
Any insight anyone? #windowsfrustrations
Path
C:\Users\me\Anaconda\Lib\site-packages>PyInstaller
回答1:
[Update: So apparently the root fix for this is in setuptools. The fix went into setuptools version 24.3.1 released July 23, 2016. Upgrading to anything newer than that should take care of this.]
It turns out this is a bug in pip. As mentioned in the other answer it has a problem with spaces in the path to the python install.
Specifically it leaves out quote marks in the generated launcher scripts. The scripts can be found in \Scripts\ (e.g. C:\Program Files\Python 3.5\Scripts). For pyinstaller there 4 pyi-* and a pyinstaller-script.py scripts.
You can work around this relatively easily by editing the first line of each script. The generated first lines will look something like:
#!c:\program files\python 3.5\python.exe
# EASY-INSTALL-ENTRY-SCRIPT: 'PyInstaller==3.1.1','console_scripts','pyinstaller'
Just add quotes around the shebang command, like so:
#!"c:\program files\python 3.5\python.exe"
回答2:
This error seems to occur when Python’s (or PyInstaller’s) path contains a space (for example, when one installs Python to the Program Files (x86)
directory.)
I suspect that somewhere in PyInstaller’s source code there are some missing quotation marks.
Try installing Python in a path without spaces, and installing PyInstaller (via pip) to that path.
回答3:
As StationaryTraveller mentioned, you can work around this bug by calling script pyinstaller-script.py
Below is an example
C:>"C:\Program Files (x86)\Python35-32\python.exe" "C:\Program Files (x86)\Python35-32\Scripts\pyinstaller-script.py" script_to_compile.py
回答4:
As of July 2016 the issue was reported as fixed, ugrading pip, setuptools and then uninstalling and installing pyinstaller should remedy the problem
回答5:
I fixed it [Anaconda 3.4] by doing this:
- Enter Anaconda Command Prompt
- Get to anaconda scripts folder by: cd /path/to/anaconda/Scripts
- Write: python pyinstaller-script.py path/YourScript.py
Worked like a charm.
回答6:
"C:\Program Files\Python35-32\python.exe" "C:\Program Files\Python35-32\Scripts\pyinstaller-script.py" --onefile --windowed ex_btn.py
--onefile : create only exe,
--windowed : exclude the prompting CMD,
ex_btn.py : python script file.
This worked like charm.
回答7:
python -m pip install pip
worked for me.
With Anaconda version of Python 3.5.2 and 3.6.0(Upgraded for this error, but the error appears to be the same with both versions), I had encountered the same error message with command pip install pip
, or pip install whatever
/ conda install whatever
.
I had both Python 2.7 and 3.5, but pip install --upgrade pip
had been working every day, until a few days ago.
回答8:
I had the same issue, even with pip and setuptools updated, and the problem was that pyinstaller-script.py, found in C:\Python35\Scripts\ directory, had the wrong path for python.exe.
Python on my system was somehow installed in AppData, but its' scripts and modules were being installed in C:\Python35\ folder.
Changing the first line of pyinstaller-script.py to the correct path of python.exe (Programs directory inside AppData), with quotes if there's any space in the folders' names inbetween, and it should work and no longer show the "Failed to create process".
Using Windows10 and Python35 official installer got Python installed there somehow.
回答9:
In my case, I uninstall and install pyinstaller, then every things work well.
It may relate to any changes within python after installation, so re-installing is a good choice.
uninstall:
pip uninstall pyinstaller
install:
pip install pyinstaller