搜索网络,这似乎是由Python安装路径中的空格引起的问题。
我如何让pip工作,而不必重新安装在一个没有空格的路径中的所有东西?
搜索网络,这似乎是由Python安装路径中的空格引起的问题。
我如何让pip工作,而不必重新安装在一个没有空格的路径中的所有东西?
当前回答
当我重新安装python时,通过卸载python3.7和安装python3.8,我也有类似的问题。但是我通过删除以前版本的python目录解决了这个问题。对我来说,它位于这里,
C:\Users\your-username\AppData\Local\Programs\Python
我删除了名为Python37的文件夹(用于以前的版本),并保留Python38(用于更新版本)。这是因为python本身似乎在为你的python脚本找到正确的目录时遇到了麻烦。
其他回答
我今天遇到了这个问题。我得到这个错误的原因是因为我有一个项目存储在Dropbox上,我从2台不同的电脑访问。
我正在使用venv,因为我在机器A上安装了venv,如果我试图在机器B上运行pytest,我会得到错误。
删除venv文件夹,运行python -m venv venv为我解决了这个问题。
我添加了我的答案,因为我在本地配置ODDO9源代码时得到了相同的错误,它需要exe运行而运行exe,我得到了相同的错误。
从昨天开始,我配置了oddo 9.0(章节:“在requirements.txt文件中列出的Python依赖项。”),它需要运行PIP exe作为
C:\Python27\Scripts\pip.exe install -r requirements.txt
我的oddo路径是:D:\Program Files (x86)\Odoo 9.0-20151014 我的pip位置是:- D:\Program Files (x86)\Python27\Scripts\pip.exe
所以我打开命令提示符,转到上面的oddo路径,并尝试使用这些组合运行pip exe,但并不总是给出以上错误。
D:\Program Files (x86)\Python27\Scripts\pip.exe安装-r requirements.txt "D:\Program Files (x86)\Python27\Scripts\pip.exe install -r requirements.txt" Python27\Scripts\pip.exe安装-r requirements.txt "Python27/Scripts/pip.exe install -r requirements.txt"
我通过@user4154243的答案解决了我的问题,谢谢。
第一步:添加变量(如果你的路径不在变量的路径中)。
第二步:进入命令提示符,打开oddo安装路径。
第三步:运行此命令python -m pip install XXX将运行并安装的东西。
它不是直接调用ipython,而是使用Python加载,例如
“ipython.exe的完整路径”
我选择安装Python for Windows (64bit),不是为所有用户,而是为我自己。
重新安装Python-x64并检查高级选项“为所有用户”,为我解决了pip问题。
我写了一个脚本补丁那些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:])