我对python,pythonbrew和ubuntu都很陌生。我需要python2.6,目前在我的ubuntu精确系统上有2.7。在线搜索显示,我不应该尝试卸载2.7,因为那样会破坏操作系统,而是使用pythonbrew来管理多个python安装。
我试着安装pythonbrew,但是curl (curl -kL https://raw.githubusercontent.com/utahta/pythonbrew/master/pythonbrew-install | bash)对我来说不起作用:它没有从env获取我的http代理,然后在命令行中提供它之后,没有将它传递给安装脚本。我手动下载了pythonbrew,然后使用python安装来安装它。我把它作为root来完成,它似乎可以工作(安装在/root/..pythonbrew下,这不是最好的),但是我不能将它作为系统上的另一个用户使用(权限问题)。经过更多的阅读,我以root用户的身份正确地执行了脚本,并将pythonbrew安装到/usr/local/pythonbrew (yay)。
现在,当我以根用户或非root用户的身份执行以下操作时,它会等待一段时间,然后提示返回时不会出现错误或任何其他信息(--详细说明没有任何区别):
root@xxx:~/.pythonbrew/scripts/pythonbrew# pythonbrew install 2.6
root@xxx:~/.pythonbrew/scripts/pythonbrew#有什么想法吗?我猜想这又与代理有关,但我对python完全陌生,所以欢迎任何指针。
发布于 2013-09-23 21:46:16
按照“哪个pythonbrew”并进行一些猜测,解决了我的问题:我将/usr/local/pythonbrew/ curl.py /pythonbrew代理设置下的文件更改为读取、读取头和获取函数,如下所示:
修改前:
p = Popen('curl -skL "%s"' % url, stdout=PIPE, shell=True)修改后:
p = Popen('curl -x http://<proxy host>:<proxy port> -skL "%s"' % url, stdout=PIPE, shell=True)我不知道为什么在没有代理设置的情况下没有输出,但是现在安装工作了!
发布于 2019-09-04 18:10:30
今天,我在用pythonbrew安装py2.7.14时也遇到了这个问题。
它静默地失败安装的原因是当它从python服务器(src为py2.7.14)获得头部时,它检查返回状态是否成功。它实现了HTTP/1.1方法检查(仅在成功返回状态为200 OK的情况下)。
但是,python使用HTTP/2,成功返回的代码是200格式的,没有尾随的OK。
因此,为了解决这个问题,我在/opt/.pythonbrew/scripts/pythonbrew/curl.py中的2行代码下面添加了2行代码,即例程readheader()。
if re.match('^HTTP.*? 200 OK$', line):
break在上述代码下面添加了此代码:
elif re.match('^HTTP.*? 200$', line):
break我不想更改pythonbrew的代码,因此添加了一个elif。
这个很管用。
我注意到,其他几个使用pyenv的人也提到了类似的问题,我认为可能存在类似的问题。
https://stackoverflow.com/questions/18969343
复制相似问题