搜索网络,这似乎是由Python安装路径中的空格引起的问题。
我如何让pip工作,而不必重新安装在一个没有空格的路径中的所有东西?
搜索网络,这似乎是由Python安装路径中的空格引起的问题。
我如何让pip工作,而不必重新安装在一个没有空格的路径中的所有东西?
当前回答
如果您在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
其他回答
这是我如何解决它。
下载https://bootstrap.pypa.io/get-pip.py 激活你的vitualenv 导航到get-pip.py文件,输入“python get-pip.py”,不带引号。
它将在环境中重新安装PIP,并自动卸载以前的版本。
现在繁荣! !安装你喜欢的任何东西
尝试使用下面的链接重新安装,
下载https://bootstrap.pypa.io/get-pip.py
下载后,将“get-pip.py”复制到python安装的主目录,然后打开cmd并导航到python目录并键入“python get-pip.py”(不带引号)
注意:还要确保在环境变量中设置了python目录。
希望这能有所帮助。
它不是直接调用ipython,而是使用Python加载,例如
“ipython.exe的完整路径”
我写了一个脚本补丁那些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:])
我在windows 10上也有同样的问题,在尝试了之前所有的解决方案后,问题仍然存在,所以我决定卸载我的python 2.7并安装2.7.13版本,它工作得很好。