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

我如何让pip工作,而不必重新安装在一个没有空格的路径中的所有东西?


当前回答

我也有类似的问题,升级pip为我解决了这个问题。

python -m pip install --upgrade pip 

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

其他回答

我今天遇到了这个问题。我得到这个错误的原因是因为我有一个项目存储在Dropbox上,我从2台不同的电脑访问。

我正在使用venv,因为我在机器A上安装了venv,如果我试图在机器B上运行pytest,我会得到错误。

删除venv文件夹,运行python -m venv venv为我解决了这个问题。

我的确切问题是(致命错误在启动程序:无法创建进程使用' ' ')在windows 10。于是我找到了“C:\Python33\Lib\site-packages”,删除了django文件夹和pip文件夹,然后用pip重新安装了django,问题就解决了。

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

> 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

至少在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的路径。

对我来说,当我将环境路径从最初指向v3.6的路径改为指向v2.7时,就出现了这个问题。在那之后,要运行pip或virtualenv命令,我必须使用python -m pip install XXX,如下面的答案所述。

因此,为了摆脱这个问题,我再次运行v2.7安装程序,选择更改选项并确保启用了添加到路径选项,并让安装程序运行。在那之后,一切都正常运转。