我是python,pythonbrew和ubuntu的新手。我需要python 2.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 setup.py install来安装它。我以root身份做了它似乎工作(在/root/.pythonbrew下安装,这不是最好的),但我不能将它用作系统上的不同用户(权限问题)。经过一些阅读后,我以root用户身份正确执行了脚本,并将pythonbrew安装到/ usr / local / pythonbrew(yay)。
现在,当我以root或非root用户身份执行以下操作时,它会等待一段时间然后提示返回时没有错误或任何其他信息(--verbose没有区别):
root@xxx:~/.pythonbrew/scripts/pythonbrew# pythonbrew install 2.6
root@xxx:~/.pythonbrew/scripts/pythonbrew#
有什么想法吗?我猜这又与代理有关,但我对python完全不熟悉所以任何指针都是受欢迎的。
答案 0 :(得分:0)
在“哪个pythonbrew”之后做了一些猜测以下解决了我的问题:我更改了/ usr / local / pythonbrew / scripts / pythonbrew下的curl.py文件,将代理设置添加到read,readheader和fetch函数,如下所示:
修改前:
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)
我不确定为什么没有代理设置没有输出,但现在安装有效!
答案 1 :(得分:0)
我今天在用pythonbrew安装py2.7.14时也遇到了这个问题。
静默安装失败的原因是,当它从python服务器(py2.7.14的src)获取标头时,它会检查成功的返回状态。它实现HTTP / 1.1方法检查(仅),其中成功返回状态为200 OK
。
但是,python服务器使用HTTP / 2,并且成功返回码的格式为200
,没有结尾的OK
。
因此,要解决此问题,我在例程/opt/.pythonbrew/scripts/pythonbrew/curl.py
的{{1}}中的以下两行下面添加了两行代码。
readheader()
在上面的代码下面添加了此代码:
if re.match('^HTTP.*? 200 OK$', line):
break
我不想更改pythonbrew的代码,因此添加了elif re.match('^HTTP.*? 200$', line):
break
。
这有效。
我注意到其他一些使用elif
的人也提到了类似的问题,我想那里可能也存在类似的问题。