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

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


当前回答

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

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

从PATH中删除对不存在的Python 3文件夹的引用,并升级到pip的最新版本,解决了这个问题。

其他回答

我在使用django rest框架和simplejwt时遇到了这个问题。我所要做的就是升级pip并重新安装软件包

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

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

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

如果您在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的路径。

这是我如何解决它。

下载https://bootstrap.pypa.io/get-pip.py 激活你的vitualenv 导航到get-pip.py文件,输入“python get-pip.py”,不带引号。

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

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