导入错误:需要“packaging.requirements”包

dbf*_*dbf 5 python setuptools python-2.7 gunicorn

我正在使用 ubuntu 运行 VPS:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:        14.04
Codename:       trusty
Run Code Online (Sandbox Code Playgroud)

我试图将 Python 从 2.7.6 升级到 2.7.16。

刚刚升级 Gunicorn 库后无法启动

Traceback (most recent call last):
  File "/home/user/bin/python-2.7/bin/gunicorn", line 7, in <module>
    from gunicorn.app.wsgiapp import run
  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 9, in <module>
    from gunicorn.app.base import Application
  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/gunicorn/app/base.py", line 12, in <module>
    from gunicorn import util
  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/gunicorn/util.py", line 12, in <module>
    import pkg_resources
  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 82, in <module>
    __import__('pkg_resources.extern.packaging.requirements')
  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/pkg_resources/extern/__init__.py", line 61, in load_module
    "distribution.".format(**locals())
ImportError: The 'packaging.requirements' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.
Run Code Online (Sandbox Code Playgroud)

有人告诉我这可能是一些设置工具的问题,所以我用

python -m ensurepip
Looking in links: /tmp/tmp98U8zf
Requirement already satisfied: setuptools in ./bin/python-2.7/lib/python2.7/site-packages (41.1.0)
Requirement already satisfied: pip in ./bin/python-2.7/lib/python2.7/site-packages (19.2.2)
Run Code Online (Sandbox Code Playgroud)

(没有变化)

我试着做

pip install packaging
Run Code Online (Sandbox Code Playgroud)

(没有变化)

或将 setuptools 降级到 19.2(如Python 2.7 中所建议的 'packaging' 包是必需的;通常这与此包捆绑在一起

并得到

  File "/home/user/bin/python-2.7/lib/python2.7/site-packages/gunicorn/config.py", line 8, in <module>
    import copy
  File "/home/user/bin/python-2.7/lib/python2.7/copy.py", line 52, in <module>
    import weakref
  File "/home/user/bin/python-2.7/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Run Code Online (Sandbox Code Playgroud)

在我的情况下,有什么可行的方法可以升级到 2.7.16 python?

更新

我用它升级了python

wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
make clean && ./configure --enable-unicode=ucs4 --enable-shared --prefix=/home/user/bin/python-2.7/ --with-ensurepip=install && make && make install
pip install -r ~/django/django_projects/requirements.txt
Run Code Online (Sandbox Code Playgroud)

pip 冻结:https : //www.pastiebin.com/5d592ea701503

谢谢。

小智 1

尝试通过键入以下内容来升级 pip:

pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)