启动器中的致命错误:无法使用“” C:\ Program Files(x86)\ Python33 \ python.exe”来创建进程。“ C:\ Program Files(x86)\ Python33 \ pip.exe”


211

搜索网络似乎是由Python安装路径中的空格引起的问题。

我如何pip才能工作而不必在没有空格的路径中重新安装所有内容?


1
您是否尝试过将短路径名用于程序文件(X86)?例如“ C:\ PROGRA〜2 \ Python33 \ python.exe”
Shadow9043

4
问题在于,pip安装后,它将使用从系统获得的原始长名称。请参阅下面的答案。
Archimedix

2
可使用Python 2.7和Windows 10 Preview内部版本10074重现
Csaba Toth,

2
@CsabaToth,我必须更正您的编辑:双引号正确无误,就像您更改之前一样。他们只是省略了单引号:逐字错误是:Fatal error in launcher: Unable to create process using '""C:\Program Files (x86)\Python33\python.exe"" "C:\Program Files (x86)\Python33\Scripts\pip.exe" '。看起来很奇怪,但事实就是这样。
Archimedix

我使用的是Powershell(Admin),它在第一次使用时就可以使用。
Aakash Choubey

Answers:


455

看起来

python -m pip install XXX 

无论如何都会为我工作(请参阅user474491的链接


9
使其成为了公认的答案,尽管它比实际解决方案更像是一种变通方法(或替代方法),但无论如何,它更通用。
Archimedix

2
@ user4154243,可以,但是您能解释一下它的实际作用吗?以此来安装其他所有库是否有后果?
multigoodverse15年

1
你救了我,我试图配置单子,它需要配置python。我尝试了5到6个小时来解决同一问题,最后还是根据您的想法进行了工作。太谢谢了。我还添加了我与单数相关的工作的答案。
Ajay2707

1
如果在virtualenv中存在此问题,请使用您的解决方案安装最新的pip,然后允许正常使用该命令:python -mpip install pip
--upgrade

4
这是一种解决方法,不应作为公认的答案
Raiden Core

75

至少在Windows上,pip将安装后的执行路径存储在可执行文件中pip.exe

使用十六进制编辑器或写字板编辑此文件(您必须将其保存为纯文本然后保留二进制数据),使用引号和空格将Python路径更改为如下所示:

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

到没有空格和引号的转义路径,并以空格填充(末尾的点应为空格):

#!C:\Progra~2\Python33\python.exe.............

对于“ C:\ Program Files”,此路径可能是“ C:\ Progra〜1”(在DOS / Windows 3.x表示法中,缩短的路径名使用波浪号和数字)。Windows提供了此备用符号,以便与DOS / Windows 3.x应用程序向后兼容。

请注意,由于这是一个二进制文件,因此不应更改可能会破坏可执行文件的文件大小,因此可能会导致填充。

使用管理员权限进行保存,请确保将其实际保存在目标位置,然后重试。

您可能还需要将PATH变量设置为使用~指向路径的符号pip


1
我不是说环境变量。我只是说这个字符串出现的位置,"#!"C:\Program Files (x86)\Python33\python.exe"我可以通过使用十六进制编辑器找出它的位置。但是,使用Sublime Text看不到这样的字符串。您能想到为什么路径在写字板而不是Sublime Text中显示的原因吗?
Sohaib 2014年

2
写字板是一个愚蠢的文本编辑器,我想Sublime可能太聪明了,它显示了内容的十六进制转储。
Archimedix 2014年

6
这对我有用。我的原始字符串是#!"C:\Program Files\Python3.4\python.exe",因此我将其更改为#!C:\Progra~1\Python3.4\python.exe 并成功运行。我能够使用Notepad ++很好地编辑文件。该字符串显示在文件末尾附近,位于长行的末尾。
Scott Weldon 2014年

3
这工作了。我只是卸载了python。然后重新安装;重新安装后,我只是将安装文件夹从C:\Program Files (x86)\Python34更改为C:\Progra~2\Python34。(如果您不想使用十六进制编辑器或更改二进制文件)
Trent

2
“至少在Windows上,pip在安装后将执行路径存储在可执行文件pip.exe中。” 现在这很愚蠢-.-花了我半个小时才弄清楚。
2015年

36

与我在https://pip.pypa.io/en/latest/installing.html#install-pip中阅读的要更新pip的问题相同:

python -m pip install -U pip

所以我做了(例如)

python -m pip install virtualenv

而且有效!因此,您可以通过“ virtualenv”另一个所需的软件包来执行相同的操作。


4
我遇到了列出的错误,这是对我有用的解决方案!升级到最新的pip后,我什至可以使用“ pip install virtualenv”并停止使用“ python -m pip”。谢谢!
Steve-gregory,2015年


16

我有一个类似的问题,升级点对我来说已经解决了。

python -m pip install --upgrade pip 

这是在Windows上,pip.exe中的python路径不正确。有关路径的更多信息,请参见Archimedix答案


2
谢谢!您可能需要添加:
force

我已经安装了最新版本。使用python -m pip install pip == 9.0.0来运行旧版本,然后进行升级以修复pip.exe
Stefan

5

这是我解决的方法:

  1. pip.exe在7zip中打开并解压缩__main__.py到Python \ Scripts文件夹。

    就我而言 C:\Program Files (x86)\Python27\Scripts

  2. 重命名__main__.pypip.py

  3. 运行! python pip.py install something

编辑:

如果您希望能够pip install something从任何地方进行操作,也可以执行以下操作:

  1. 将pip.py重命名为pip2.py(以避免导入pip错误)

  2. 使C:\Program Files (x86)\Python27\pip.bat具有以下内容:

python“ C:\ Program Files(x86)\ Python27 \ Scripts \ pip2.py”%1%2%3%4%5%6%7%8%9

  1. 添加C:\Program Files (x86)\Python27到您的PATH(如果尚未添加)

  2. 运行! pip install something


4

当路径中有空格时,这是一个已知的错误virtualenv。已进行更正,并将在下一版本中可用。


5
Pip错误现已修复。通过运行进行更新python -m pip install -U pip
StuartLC 2014年

13
不,到目前为止,Python34仍然存在该错误!
马丁F

仍然是一个问题:Python36
Masood Lapeh,

1
仍然是一个问题:Python37
jmn

仍然存在问题:python 3.6.6
user2386301 '19


2

我写了一个脚本来修补那些exe。但是最好的方法是修复distutil本身。

"""Fix "Fatal error in launcher: Unable to create process using ..." error. Put me besides those EXE made by pip. (They are made by distutils, and used by pip)"""
import re
import sys
import os
from glob import glob


script_path = os.path.dirname(os.path.realpath(__file__))
real_int_path = sys.executable
_t = script_path.rpartition(os.sep)[0] + os.sep + 'python.exe'
if script_path.lower().endswith('scripts') and os.path.isfile(_t):
    real_int_path = _t

print('real interpreter path: ' + real_int_path)
print()

for i in glob('*.exe'):
    with open(i, 'rb+') as f:
        img = f.read()
        match = re.search(rb'#![a-zA-Z]:\\.+\.exe', img)
        if not match:
            print("can't fix file: " + i)
            continue
        int_path = match.group()[2:].decode()
        int_path_start = match.start() + 2
        int_path_end = match.end()

        if int_path.lower() == real_int_path.lower():
            continue
        print('fix interpreter path: %s in %s' % (int_path, i))
        f.seek(int_path_start)
        f.write(real_int_path.encode())
        f.write(img[int_path_end:])

1
尝试运行eb.exe(AWS Elastic Beanstalk CLI的一部分)时出现错误“无法创建进程”,并且此小脚本修复了eb.exe!现在可以了,谢谢。
JustAC0der

这对我有用,但只有在更改代码以使其与real_int_path和int_path相匹配的长度之后才可以。我用Archimedix的答案建议在其中填充空格。

2

我在Windows 10上遇到了相同的问题,尝试了所有先前的解决方案后问题仍然存在,所以我决定卸载python 2.7并安装2.7.13版,它可以完美运行。


2

如果在Windows上使用区分大小写的文件系统,则可能会发生这种情况。您可以判断是否存在目录中的lib目录和目录:Libvenv

> dir

Directory: C:\git\case\sensitive\filesystem\here\venv

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        4/07/2018   4:10 PM                Include
d-----       22/01/2019   7:52 AM                Lib
d-----       22/01/2019   7:52 AM                lib
d-----       22/01/2019   7:52 AM                Scripts
d-----       22/01/2019   7:52 AM                tcl

要解决此问题(直到virtualenv.py得到解决:https : //github.com/pypa/virtualenv/issues/935),请合并两个lib目录并使venv大小写不敏感:

cd venv
move Lib rmthis
move .\rmthis\site-packages\ lib
rmdir rmthis
fsutil.exe file setCaseSensitiveInfo . disable

我没有“ Lib”和“ lib”目录,但仍然遇到此问题。您可以使用以下命令直接确定venv目录是否区分大小写fsutil.exe file queryCaseSensitiveInfo .venv。有关Windows区分大小写的文件系统的更多背景,可以发现devblogs.microsoft.com/commandline/...
CodeButcher

1

请添加此地址:

C:\ Program文件(x86)\ Python33

在Windows PATH变量中

尽管首先确保这是Python exe文件所在的文件夹,然后才将此路径添加到PATH变量。

要在PATH变量中附加地址,请转到

控制面板->系统->高级系统设置->环境变量->系统变量->路径->编辑->

然后附加上述路径并点击保存


1

改名的可执行python.exe到如python27.exe。关于Archimedix的答案,我使用十六进制编辑器打开了pip.exe ,滚动到文件末尾,python.exe并将路径更改为python27.exe。在进行编辑时,请不要忽略其他信息。


1

我添加了anwer,因为在本地配置ODDO9源代码时遇到了相同的错误,并且在运行exe时需要exe才能运行,我也遇到了相同的错误。

从昨天开始,我就配置了oddo 9.0(部分:-“在requirements.txt文件中列出的Python依赖项。”),并且需要以如下方式运行PIP exe:

C:\ YourOdooPath> C:\ Python27 \ Scripts \ pip.exe安装-r requirements.txt

我的奇怪路径是:-D:\ Program Files(x86)\ Odoo 9.0-20151014我的pip位置是:-D:\ Program Files(x86)\ Python27 \ Scripts \ pip.exe

因此,我打开命令提示符并转到上面的奇怪路径,并尝试使用这些组合运行pip exe,但始终没有给出以上错误。

  1. D:\ Program Files(x86)\ Python27 \ Scripts \ pip.exe安装-r requirements.txt
  2. “ D:\ Program Files(x86)\ Python27 \ Scripts \ pip.exe安装-r requirements.txt” Python27 \ Scripts \ pip.exe安装-r requirements.txt

  3. “ Python27 / Scripts / pip.exe安装-r requirements.txt”

我通过@ user4154243回答解决了我的问题,谢谢。

步骤1:添加变量(如果您的路径不在变量的路径中)。

步骤2:进入命令提示符,打开安装路径。

步骤3:运行此命令python -m pip install XXX将运行并安装东西。


1

如果您同时安装我在Window中解决了我的问题 python2和python3,

您需要输入某人\脚本将所有file.exe更改为file27.exe,然后解决

我的D:\ Python27 \ Scripts将django-admin.exe编辑为django-admin27.exe从而完成了


欢迎来到SO。请在帮助部分中查找答案的格式。
理查德·埃里克森

1

我的确切问题是(在启动器中出现致命错误:无法使用'“'创建进程)在Windows 10上。所以我导航至” C:\ Python33 \ Lib \ site-packages“并删除了django文件夹和pip文件夹,然后重新安装了django使用点,我的问题就解决了。


1

我选择不为所有用户安装Windows(64位)Python,而是为我安装。

重新安装Python-x64并检查“针对所有用户”的高级选项为我解决了pip问题。


1

这是我固定的方法。

  1. 下载https://bootstrap.pypa.io/get-pip.py
  2. 活跃你的活力
  3. 导航至get-pip.py文件,然后键入“ python get-pip.py”(不带引号)。

它将在环境中重新安装您的pip并自动卸载以前的版本。

现在繁荣!安装任何您喜欢的东西


0

尝试使用以下链接重新安装,

下载https://bootstrap.pypa.io/get-pip.py

下载后,将“ get-pip.py”复制到python安装的主目录中,然后打开cmd并导航到python目录并键入“ python get-pip.py”(不带引号)

注意:还要确保在环境变量中设置了python目录。

希望这会有所帮助。


0

对我来说,当我将环境路径更改为指向v2.7时出现了这个问题,该路径最初指向v3.6。之后,要运行pipvirtualenv命令,我必须python -m pip install XXX按照以下答案中的说明进行操作。

因此,为了摆脱这种情况,我再次运行v2.7安装程序,选择了change选项,并确保启用了“ 添加到路径”选项,然后运行安装程序。之后,一切都会正常进行。


0

我遇到了这个问题,并且此页面上的其他修复没有完全解决问题。

解决问题的方法是进入我的系统环境变量并查看PATH-我已经卸载了Python 3,但是Python 3文件夹的旧路径仍然存在。我在PC上仅运行Python 2,并使用Python 2安装pip。

除了升级到最新版本以外,还从PATH中删除对不存在的Python 3文件夹的引用pip


0

我有一个更简单的解决方案。使用@apple方式,但将main .py 重命名为pip.py,然后将其放在python版本的scripts文件夹中,并将scripts文件夹添加到您的路径中以全局访问它。如果您不想将其添加到路径,则必须将其cd到脚本,然后运行pip命令。


0

Windows上我通过以下方式解决了此问题:

1)卸载Python

2)导航到C:\Users\MyName\AppData\Local\Programs(您应该打开隐藏文件的可见性,显示隐藏文件的说明

3)删除“ Python”文件夹

4)安装Python


我在Windows 10上。我复制了python文件夹并覆盖到新计算机上,以节省安装800 MB以上所有内容的时间。以前工作正常,但这次不知何故。我在这里进行了所有尝试,只有Darkside的终极解决方案对我有效。
HCChen

0

通过卸载python3.7和安装python3.8重新安装python时,我遇到类似的问题。但是我通过删除先前版本的python目录解决了。对我来说它就在这里

C:\ Users \您的用户名\ AppData \ Local \ Programs \ Python

我删除了名为Python37的文件夹(对于以前的版本),并保留了Python38(对于更新的版本)。之所以有用,是因为python本身似乎很难为您的python脚本找到正确的目录。


0

我试图安装一些站点软件包,例如numpy,xgboost等,但是每次都会显示此错误:

Fatal error in launcher: Unable to create process using

我尝试了多种方法来解决此问题,并找到了一个成功地帮助了我的方法:

python -m pip freeze

希望它也能帮助别人。

PS我在这里找到了这个解决方案:https : //stackoverflow.com/a/39733705/10310794


0

您可以从PC删除先前的python文件夹以及环境变量路径,然后重新安装python。它将解决


-2

而不是直接调用ipython,而是使用诸如

$ python“ ipython.exe的完整路径”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.