首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pip抱怨包问题

pip抱怨包问题
EN

Stack Overflow用户
提问于 2019-05-12 15:23:17
回答 1查看 806关注 0票数 1

我正在尝试安装cffi包,因为bcrypt依赖于它,但我一直收到这个错误,这对我来说没有任何意义。它说找不到cffi的相关版本,但在需求文件中,我列出了最新版本。

为什么我会得到这个错误?

我正在使用Docker构建镜像,使用:

代码语言:javascript
复制
FROM python:3.6.5-alpine

WORKDIR /app
ADD . /app
RUN pip3 install -r requirements.txt
EXPOSE 5000
CMD ["python", "main.py"]   # I've got set alias on Python == Python 3.6

requirements.txt:

代码语言:javascript
复制
alembic==1.0.9
cffi==1.12.3
bcrypt==3.1.6
blinker==1.4
Click==7.0
Faker==1.0.5
Flask==1.0.2
Flask-Bcrypt==0.7.1
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.4.0
Flask-Moment==0.7.0
Flask-Script==2.0.6
Flask-SQLAlchemy==2.3.2
Flask-Testing==0.7.1
Flask-WTF==0.14.2
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
PyMySQL==0.9.3
SQLAlchemy==1.3.3
text-unidecode==1.2
Werkzeug==0.15.2
WTForms==2.2.1

但是,在构建时:

代码语言:javascript
复制
Step 1/6 : FROM python:3.6.5-alpine
---> 5be6d36f77ee
Step 2/6 : WORKDIR /app
---> Using cache
---> f9e7cc24d767
Step 3/6 : ADD . /app
---> 7d9d5bdcf5d6
Step 4/6 : RUN pip3 install -r requirements.txt
---> Running in b455df1a48e2
Collecting alembic==1.0.9 (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/fc/42/8729e2491fa9b8eae160d1cbb429f61712bfc2d779816488c25cfdabf7b8/alembic-1.0.9.tar.gz (1.0MB)
Collecting bcrypt==3.1.6 (from -r requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/ce/3a/3d540b9f5ee8d92ce757eebacf167b9deedb8e30aedec69a2a072b2399bb/bcrypt-3.1.6.tar.gz (42kB)
Could not find a version that satisfies the requirement cffi>=1.1 (from versions: )
No matching distribution found for cffi>=1.1
You are using pip version 10.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
The command '/bin/sh -c pip3 install -r requirements.txt' returned a non-zero code: 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-12 17:10:15

安装cffi需要gcc,而alpine映像中不包含该文件。

如果运行

代码语言:javascript
复制
docker run -it python:3.6.5-alpine sh

然后在容器中运行

代码语言:javascript
复制
pip install cffi==1.12.3

将得到:

代码语言:javascript
复制
    unable to execute 'gcc': No such file or directory
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-juslf1fb/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-md66dk3u/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-juslf1fb/cffi/

要解决此问题,您可以使用python镜像的stretch版本,如:

代码语言:javascript
复制
FROM python:3.6.5-stretch
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56097037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档