Python3安装bluelog依赖,报错 MarkupSafe setup.py: ImportError: cannot import name Feature

bluelog
markupsafe

#1

我搭建bluelog(https://github.com/greyli/bluelog)时遇到了一些问题。

前面正常安装了虚拟环境并激活,但是安装依赖时报错,如图


ERROR: Command errored out with exit status 1:
command: /root/bluelog/venv/bin/python -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/tmp/pip-install-p3pvsrus/markupsafe/setup.py’"’"’; file=’"’"’/tmp/pip-install-p3pvsrus/markupsafe/setup.py’"’"’;f=getattr(tokenize, ‘"’"‘open’"’"’, open)(file);code=f.read().replace(’"’"’\r\n’"’"’, ‘"’"’\n’"’"’);f.close();exec(compile(code, file, ‘"’"‘exec’"’"’))’ egg_info --egg-base /tmp/pip-install-p3pvsrus/markupsafe/pip-egg-info
cwd: /tmp/pip-install-p3pvsrus/markupsafe/
Complete output (5 lines):
Traceback (most recent call last):
File “”, line 1, in
File “/tmp/pip-install-p3pvsrus/markupsafe/setup.py”, line 6, in
from setuptools import setup, Extension, Feature
ImportError: cannot import name ‘Feature’
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

试了很久没找到解决方法,是什么原因呢,应该怎么操作才能安装好依赖

环境:CentOS 7,Python 3.6.8


#2

我搭建bluelog(https://github.com/greyli/bluelog)时遇到了一些问题。
在图中这一步出错

下面是我的操作方法:
我通过如下方式创建虚拟环境并激活


然后安装 requirements.txt 时出错,如图
image

试了很久没找到解决方法,是什么原因呢,应该怎么操作才能安装好依赖

环境:CentOS 7,Python 3.6.8


#3

出现这个导入报错是因为 setuptools 46.0.0 版本删掉了弃用的 Feature。解决方法有三种,你可以任选一种:

  1. 激活虚拟环境后回退到旧版本,然后重新执行安装依赖:
(venv) $ pip install setuptools==39.2.0
(venv) $ pip install -r requirements.txt
  1. 改用 venv 模块来创建虚拟环境,默认会使用旧版本的 setuptools:
$ python3 -m venv venv
  1. 升级 MarkupSafe 到最新版本(因为你是从依赖文件安装,所以需要在 requirements.txt 里找到 MarkupSafe 这一行,然后把版本改成 1.1.1):
MarkupSafe==1.1.1

#4

已解决,谢谢!