bash 脚本中的 pip -r 错误

pip -r error at in bash script

#!/bin/bash -e
pip install -r requirements.txt

当我执行上面的脚本时,出现以下错误消息;

 Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 257, in run
    InstallRequirement.from_line(name, None))
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 173, in from_line
    return cls(req, comes_from, url=url, prereleases=prereleases)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 71, in __init__
    req = pkg_resources.Requirement.parse(req)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2667, in parse
    reqs = list(parse_requirements(s))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2593, in parse_requirements
    raise ValueError("Missing distribution spec", line)
ValueError: ('Missing distribution spec', '\xe2\x80\x93r')

Storing debug log for failure in /home/user/.pip/pip.log

但是如果我执行

pip install –r  requirements.txt

直接通过bash,效果很好。可能是什么原因?

下面是我的 python 和 pip 版本;

user@ubuntu:~$ python -V
Python 2.7.6
user@ubuntu:~$ pip -V
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)
user@ubuntu:~$
\xe2\x80\x93

这是 UTF-8 编码 en dash. Be sure to use the usual (ASCII) dash

换句话说,替换为:

pip install –r requirements.txt

有了这个:

pip install -r requirements.txt