【问题标题】:Installing pyinstaller via pip leads to "failed to create process"通过 pip 安装 pyinstaller 导致“创建进程失败”
【发布时间】:2015-10-26 19:02:06
【问题描述】:

有谁知道为什么pyinstaller 在通过pip 通过anaconda 32bit 安装后立即失败?

我通过 pip install pyinstaller 在 Windows 64 位使用 32 位 anaconda 的 anaconda 命令提示符安装了 pyinstaller(因为我想创建 32 位可执行文件)

是的,我读过 pyinstaller --version failed to create a processpip/easy_install failure: failed to create processHow to install pyinstaller using pip

我没有重命名 15 分钟前安装的 anaconda、10 分钟前安装的 pycharm 和 5 分钟前安装的 pyinstaller 的任何文件。我通过 pup uninstall 卸载了 pyinstaller 并重新安装在 anaconda 脚本文件夹中,这没有任何作用。

有任何见解吗? #windows 挫折 小路 C:\Users\me\Anaconda\Lib\site-packages>PyInstaller

【问题讨论】:

  • 您的用户真的是me 还是您有一个带空格的真实用户名? (例如John Doe
  • 此问题已于 2016 年 7 月修复

标签: windows python-2.7 pip anaconda pyinstaller


【解决方案1】:

即使更新了 pip 和 setuptools,我也遇到了同样的问题,问题是 C:\Python35\Scripts\ 目录中的 pyinstaller-script.py 的 python.exe 路径错误。

我系统上的 Python 以某种方式安装在 AppData 中,但它的脚本和模块安装在 C:\Python35\ 文件夹中。

将 pyinstaller-script.py 的第一行更改为 python.exe 的正确路径(AppData 中的程序目录),如果文件夹名称之间有任何空格,则使用引号,它应该可以工作并且不再显示“创建进程失败”。 示例:

#!C:\Program" "Files" "(x86)\Python\python.exe

使用 Windows10 和 Python35 官方安装程序以某种方式安装了 Python。

【讨论】:

    【解决方案2】:

    python -m pip install pip 为我工作。

    使用 Python 3.5.2 和 3.6.0 的 Anaconda 版本(已针对此错误进行了升级,但两个版本的错误似乎相同),我在使用命令 pip install pip 或 @987654323 时遇到了相同的错误消息@/ conda install whatever

    我同时拥有 Python 2.7 和 3.5,但 pip install --upgrade pip 每天都在工作,直到几天前。

    【讨论】:

    • PATH 中的 2 个 Python 版本可能会交换顺序?
    【解决方案3】:

    [更新:很明显,对此的根本修复是在 setuptools 中。该修复程序已在 2016 年 7 月 23 日发布的 setuptools 版本 24.3.1 中进行。升级到任何更新的版本应该会解决这个问题。]

    原来这是bug in pip。如另一个答案中所述,python安装路径中的空格存在问题。

    特别是它在生成的启动器脚本中省略了引号。可以在 \Scripts\ 中找到这些脚本(例如 C:\Program Files\Python 3.5\Scripts)。对于 pyinstaller,有 4 个 pyi-* 和一个 pyinstaller-script.py 脚本。

    您可以通过编辑每个脚本的第一行来相对轻松地解决这个问题。生成的第一行将如下所示:

    #!c:\program files\python 3.5\python.exe
    # EASY-INSTALL-ENTRY-SCRIPT: 'PyInstaller==3.1.1','console_scripts','pyinstaller'
    

    只需在 shebang 命令周围添加引号,如下所示:

    #!"c:\program files\python 3.5\python.exe"
    

    【讨论】:

    • 自提出最初的问题以来已经一年了,这个答案仍然对我有用。谢谢!
    • 句子“对于 pyinstaller,有 4 个 pyi-* 和一个 pyinstaller-script.py 脚本。”太误导了。事实上,只需更改 pyinstaller-script.py 文件即可,谢谢
    • 这个错误似乎在以后的 pip 和 setuptools 中得到修复。请参阅this answer below 如何修复它。
    【解决方案4】:

    截至 2016 年 7 月,该问题已报告为已修复,升级 pip、setuptools,然后卸载和安装 pyinstaller 应该可以解决该问题

    【讨论】:

      【解决方案5】:

      "C:\Program Files\Python35-32\python.exe" "C:\Program Files\Python35-32\Scripts\pyinstaller-script.py" --onefile --windowed ex_btn.py

      --onefile : 只创建 exe, --windowed : 排除提示 CMD, ex_btn.py : python 脚本文件。

      这很有魅力。

      【讨论】:

        【解决方案6】:

        正如 StationaryTraveller 所说,您可以通过调用脚本pyinstaller-script.py 来解决此错误

        下面是一个例子

        C:>"C:\Program Files (x86)\Python35-32\python.exe" "C:\Program Files (x86)\Python35-32\Scripts\pyinstaller-script.py" script_to_compile.py
        

        【讨论】:

        • 工作就像一个魅力
        【解决方案7】:

        我通过这样做修复了它 [Anaconda 3.4]:

        1. 输入 Anaconda 命令提示符
        2. 通过以下方式进入 anaconda 脚本文件夹:cd /path/to/anaconda/Scripts
        3. 写:python pyinstaller-script.py path/YourScript.py

        工作就像一个魅力。

        【讨论】:

          【解决方案8】:

          当 Python(或 PyInstaller)的路径包含空格时(例如,将 Python 安装到 Program Files (x86) 目录时),似乎会发生此错误。

          我怀疑 PyInstaller 源代码的某处缺少引号。

          尝试在没有空格的路径中安装 Python,然后将 PyInstaller(通过 pip)安装到该路径。

          【讨论】:

          • 我重新安装了没有空格的python。这看起来比编辑所有启动器脚本更好。升级 pyinstaller 时可能会丢失更改。
          【解决方案9】:

          就我而言,我卸载并安装了 pyinstaller,然后一切正常。

          这可能与安装后python内部的任何变化有关,因此重新安装是一个不错的选择。

          卸载:

          pip uninstall pyinstaller
          

          安装:

          pip install pyinstaller
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-06-18
            • 1970-01-01
            • 2020-11-26
            • 1970-01-01
            • 1970-01-01
            • 2013-06-26
            • 1970-01-01
            相关资源
            最近更新 更多