Heroku TypeError: parse_requirements() missing 1 required keyword argument: 'session'

Heroku TypeError: parse_requirements() missing 1 required keyword argument: 'session'

我正在尝试将一个应用程序从 Heroku 上的 cedar 迁移到 cedar-14 堆栈。在我的 requirements.txt 文件中我有:

....
robobrowser==0.5.1
....

当我尝试通过将项目推送到 heroku 进行部署时,我得到:

Collecting robobrowser==0.5.1 (from -r requirements.txt (line 17))
     Downloading robobrowser-0.5.1.tar.gz
       Traceback (most recent call last):
         File "<string>", line 20, in <module>
         File "/tmp/pip-build-PqCF2A/robobrowser/setup.py", line 38, in <module>
           for requirement in parse_requirements('requirements.txt')
         File "/app/.heroku/python/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/req/req_file.py", line 19, in parse_requirements
           "parse_requirements() missing 1 required keyword argument: "
       TypeError: parse_requirements() missing 1 required keyword argument: 'session'
       Complete output from command python setup.py egg_info:
       Traceback (most recent call last):

         File "<string>", line 20, in <module>

         File "/tmp/pip-build-PqCF2A/robobrowser/setup.py", line 38, in <module>

           for requirement in parse_requirements('requirements.txt')

         File "/app/.heroku/python/lib/python2.7/site-packages/pip-6.0.6-py2.7.egg/pip/req/req_file.py", line 19, in parse_requirements

           "parse_requirements() missing 1 required keyword argument: "

       TypeError: parse_requirements() missing 1 required keyword argument: 'session'

       ----------------------------------------
       Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-PqCF2A/robobrowser

我该如何解决这个问题?

robobrowser 的 github 问题跟踪器中有一个未解决的问题和一个拉取请求:

要么等待它被合并,要么从 fork 安装 robobrowser:

$ pip install git+https://github.com/xxinfinityxx/robobrowser

降级 pip 也是一种选择,但我不确定您是否可以控制在 heroku 上使用哪个 pip 版本。

尝试更新 pip:

sudo pip install --upgrade pip

这解决了我的问题。

我 运行 在为 Python 安装 wabbit_wappa 时遇到了这个问题。我 'fixed' 通过更改 setup.py 中的一行来自:

install_reqs = parse_requirements('requirements.txt')

install_reqs = parse_requirements('requirements.txt', session=False)

它安装得很好。

我有当前最新版本的 pip,这对我有用:

install_requirements = parse_requirements('requirements.txt', session=pip.download.PipSession())