在Ubuntu上安装pypy的pip失败

5

我无法在Ubuntu 15.10上安装pypy 4.0.1的pip。

我从http://pypy.org/download.html下载了pypy 4.0.1。创建了一个符号链接。并使用wget从https://bootstrap.pypa.io/get-pip.py下载get-pip.py。

但是当我运行sudo pypy get-pip.py时,我遇到了异常:

Collecting pip
Exception:
Traceback (most recent call last):
    File "/tmp/tmps2kjCI/pip.zip/pip/basecommand.py", line 211, in main
      status = self.run(options, args)
    File "/tmp/tmps2kjCI/pip.zip/pip/commands/install.py", line 294, in run
      requirement_set.prepare_files(finder)
    File "/tmp/tmps2kjCI/pip.zip/pip/req/req_set.py", line 334, in prepare_files
      functools.partial(self._prepare_file, finder))
    File "/tmp/tmps2kjCI/pip.zip/pip/req/req_set.py", line 321, in _walk_req_to_install
      more_reqs = handler(req_to_install)
    File "/opt/pypy-4.0.1-linux64/lib_pypy/_functools.py", line 42, in __call__
      return self._func(*(self._args + fargs), **fkeywords)
    File "/tmp/tmps2kjCI/pip.zip/pip/req/req_set.py", line 491, in _prepare_file
      session=self.session)
    File "/tmp/tmps2kjCI/pip.zip/pip/download.py", line 825, in unpack_url
      session,
    File "/tmp/tmps2kjCI/pip.zip/pip/download.py", line 673, in unpack_http_url
      from_path, content_type = _download_http_url(link, session, temp_dir)
    File "/tmp/tmps2kjCI/pip.zip/pip/download.py", line 885, in _download_http_url
      with open(file_path, 'wb') as content_file:
    TypeError: expected string, got NoneType object

我可以无问题地运行sudo python get-pip.py,但在pypy上失败了。 我还尝试过Ubuntu 12.04和14.04,但没有成功。
我已安装Python 2.7.10并使用Linode机器。 但更换为DigitalOcean也没有帮助。

Python 2.7 自带 pip 安装程序。 - OneCricketeer
1
是的,但PyPy不支持。我正在尝试为PyPy安装pip。 - jerry.z
事实是,即使使用绝对路径,它仍然失败了。 - jerry.z
在我的电脑上可以运行(相同的Ubuntu 15.10和相同的64位Linux上的PyPy 4.0.1)... - Armin Rigo
1
你也可以尝试使用 pypy -m ensurepip,它的工作方式类似于最近版本的 CPython 2.7.x。 - Armin Rigo
显示剩余2条评论
2个回答

1
如何从Ubuntu存档中安装PyPysudo apt install pypy。或者,如果您想要最新版本,请从 PyPy PPA安装。
然后,如果您创建了一个虚拟环境,它将包含pip:
$ sudo apt-get install virtualenv
$ virtualenv -p pypy ve
$ source ./ve/bin/activate
$ pip install ...

1
在这种方式下,你不需要特定的PyPy来使用virtualenv;任何PyPy都应该可以使用这些命令。 - Armin Rigo
不,那是故意使用 apt 的。问题是在 Ubuntu 15.04 上提出的,该版本具有新的漂亮的 apt 命令。 - tumbleweed
在Ubuntu 16.04上,创建虚拟环境时会崩溃。 - Ant6n

0

我曾经遇到过同样的问题,解决方案很简单,你需要运行这个命令:

export LC_ALL=C.UTF-8

然后运行pip安装。

您应该在服务器上将此行添加到您的.bashrc或.bash_profile中,甚至可以将其添加到/etc/environment以全局方式拥有它。(如果有更好的解决方案,请告诉我)

编辑(2016-10):

以上是其他发行版的全局和懒惰解决方案。 如果您使用的是Ubuntu,则需要重新配置区域设置,可以使用以下命令完成:

sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales

你能解释一下这个解决方案是做什么的吗? - Ant6n
我不记得为什么(大约7个月前),但是当你安装新的Ubuntu服务器时,你必须配置区域设置,这些参数被许多应用程序用来确定编码和其他内容。回答已编辑以添加Ubuntu命令。 - luisurrutia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接