- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的 python 应用程序构建一个 docker 容器,但是在通过 pipenv 安装 python 包时遇到了问题。
如果我将基本图像设置为 python:3.8.5
但是,如果我设置了 -slim
,它会起作用版本或 -alpine
版本失败并出现以下错误:
Traceback (most recent call last): File "/usr/local/bin/pipenv",
line 8, in <module>
sys.exit(cli()) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 829, in __call__
return self.main(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 782, in main
rv = self.invoke(ctx) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 610, in invoke
return callback(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/decorators.py",
line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/core.py",
line 610, in invoke
return callback(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pipenv/vendor/click/decorators.py",
line 21, in new_func
return f(get_current_context(), *args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pipenv/cli/command.py", line
232, in install
retcode = do_install( File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 2052, in
do_install
do_init( File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 1305, in
do_init
do_install_dependencies( File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 899, in
do_install_dependencies
batch_install( File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 796, in
batch_install
_cleanup_procs(procs, failed_deps_queue, retry=retry) File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 703, in
_cleanup_procs
raise exceptions.InstallError(c.dep.name, extra=err_lines) pipenv.exceptions.InstallError: ERROR: Couldn't install package:
brotlipy Package installation failed...
Dockerfile
FROM python:3.8.5-slim
RUN pip install pipenv
WORKDIR /app
COPY ./ /app/
RUN pipenv install --sequential --deploy --verbose
RUN python -m spacy download en_core_web_sm
RUN pip install gunicorn[gevent]
EXPOSE 8080
CMD gunicorn -c src/gunicorn.conf.py --chdir src wsgi:app
pipfile
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
autopep8 = "*"
[packages]
pytest = "*"
aiomysql = "*"
pytest-asyncio = "*"
spacy = "*"
nltk = "*"
jsonschema = "*"
cachetools = "*"
pycountry = "*"
boto3 = "*"
aiohttp = {extras = ["speedups"], version = "*"}
install = "*"
cchardet = "*"
aiohttp-cors = "*"
pytest-aiohttp = "*"
aiohttp-devtools = "*"
json-logging = "*"
[requires]
python_version = "3.8"
更新:
RUN apk add gcc g++ libffi-dev musl-dev \
Exception information:
Traceback (most recent call last):
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
status = self.run(options, args)
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
return func(self, options, args)
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 324, in run
requirement_set = resolver.resolve(
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for
abstract_dist = self.preparer.prepare_linked_requirement(req)
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 482, in prepare_linked_requirement
abstract_dist = _get_prepared_distribution(
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 91, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(finder, build_isolation)
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/distributions/sdist.py", line 33, in prepare_distribution_metadata
self.req.load_pyproject_toml()
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/req/req_install.py", line 503, in load_pyproject_toml
pyproject_toml_data = load_pyproject_toml(
File "/root/.local/share/virtualenvs/app-4PlAip0Q/lib/python3.8/site-packages/pip/_internal/pyproject.py", line 95, in load_pyproject_toml
raise InstallationError(
pip._internal.exceptions.InstallationError: Disabling PEP 517 processing is invalid: project specifies a build backend of setuptools.build_meta in pyproject.toml
Removed cryptography==3.0 from https://files.pythonhosted.org/packages/bf/ac/552fc8729d90393845cc3a2062facf4a89dcbe206fa78771d60ddaae7554/cryptography-3.0.tar.gz#sha256=8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053 (from -r /tmp/pipenv-9avbndah-requirements/pipenv-ituvdg4a-requirement.txt (line 1)) from build tracker '/tmp/pip-req-tracker-roedt7he'
Removed build tracker: '/tmp/pip-req-tracker-roedt7he'
Removing intermediate container de278d8d660a
---> bb539a91d593
Step 7/10 : RUN python -m spacy download en_core_web_sm
---> Running in d568290d25da
/usr/local/bin/python: No module named spacy
最佳答案
可以将问题最小化为 Dockerfile
FROM python:3.8.5-slim
RUN pip install --no-cache-dir brotlipy
如果你运行这个,你会得到错误
...
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
...
-slim
和
-alpine
图像不包括 C 编译器,而
python:3.8.5
图像。如果您安装 C 编译器,您可能会遇到其他错误,例如缺少
limit.s
,
ffi.h
,以及 C++ 标准库。
-alpine
的最小工作示例图片。
FROM python:3.8.5-alpine
RUN apk add gcc g++ libffi-dev musl-dev \
&& python -m pip install --no-cache-dir brotlipy \
&& apk del gcc g++ libffi-dev musl-dev
这是
-slim
的完整示例图片。使用
pipenv run python
运行 spacy 部分。
FROM python:3.8.5-slim
ARG DEBIAN_FRONTEND="noninteractive"
RUN pip install pipenv
WORKDIR /app
COPY ./ /app/
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
gcc g++ libffi-dev \
&& pipenv install --sequential --deploy --verbose \
&& apt-get autoremove --yes gcc g++ libffi-dev \
&& rm -rf /var/lib/apt/lists/*
RUN pipenv run python -m spacy download en_core_web_sm
RUN pipenv install gunicorn[gevent]
EXPOSE 8080
CMD gunicorn -c src/gunicorn.conf.py --chdir src wsgi:app
关于python slim 或 alpine docker 镜像无法使用 pipenv 安装软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63525628/
当我做 rpm -qa | grep nano我可以看到 Nano 文本编辑器已安装到我的 CentOS 机器上。 但是当我做 rpm -qpi nano-2.9.8-1.el8.x86_64.rpm
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 4年前关闭。 Improve this qu
我无法使用“yum”命令在RHEL服务器上安装“graphviz” 我下载了graphviz rhel.repo,并将其保存在/etc/yum.repos.d/上,然后使用“yum-y install
我想用 Go 检查 dot 包是否已安装并可在当前 OS 上执行。 我的第一个想法是检查 PATH 变量中的 /dot 字符串?有没有更好的方法来使用 Go 获取可执行/已安装的包? 任何建议都会有所
我已经在我的 ubuntu 上安装了 R(3.4.0)。我想使用 EdgeR 包。我尝试按照 Bioconductor 网站上的安装说明安装 Bioconductor 软件包。 我在 R 中使用了以下
我已经自定义编译了我自己的 ffmpeg 版本,并从这个包中制作了一个 .deb 文件。包描述如下control.txt Package: ffmpeg Version: 4.3-ubuntu1804
我正在尝试构建一个 debian 软件包,它会自动配置我所有的机器以使用相同的配置文件和设置。 例如,我正在尝试设置诸如 alter/etc/default/hostapd 之类的内容。我目前正在通过
我的configuration.nix中有一些要覆盖的软件包。因此,我将代码编写如下: nixpkgs.config = { allowUnfree = true; packageOverri
我想将我的 Ubuntu 从 19.04 升级到 20.04,但在我更新所有软件包之前这是不可能的。 ❯ sudo do-release-upgrade Checking for a new Ubun
我安装了 Homebrew 软件,但是我没有管理员权限。如何在没有管理员访问权限的情况下安装 Homebrew 软件包?是否有本地标签或我一直缺少的东西? 最佳答案 Homebrew 需要 /usr/
我想重建/重新编译具有特定标志的机器的所有 Debian 软件包。 我怎样才能用尽可能少的命令来做到这一点? 我发现 https://debian-administration.org/article
请帮我在 R 中安装 Rmpfr 包。 结果是: 安装包“Rmpfr”的退出状态非零,我无法安装它。 R控制台的代码发布如下: * installing *source* package ‘Rmpfr
有没有办法从这一行下载所有软件包,将它们保存在本地,然后将它们安装到没有互联网连接的机器上? yum install -y qemu-kvm qemu-img virt-manager libvirt
以下 R 命令将安装所有 CRAN 软件包: availablePackages <- available.packages()[,1] install.packages(availablePacka
我正在尝试在 OS X 10.12.6 上安装 RCurl,但出现以下错误: Error: package or namespace load failed for ‘RCurl’ in dyn.lo
我正在尝试自动设置开发人员机器软件安装。当您连接到 Internet 时,Chocolatey 很适合安装软件包。有没有办法离线安装软件包? 我只想将所有包放在共享网络文件夹中并使用该包进行安装。如果
这很奇怪,list-packages 缓冲区将实际安装的某些软件包的状态显示为“可用”。该列不应该为他们显示“已安装”吗?当我单击其中一个时,会打开一个新缓冲区,通知我该软件包已安装,但不提供卸载选项
我刚开始学习 Dart 。 首先,我从https://angular.io/docs/dart/latest/quickstart.html创建了一个基于angular2-dart的项目,它正常工作。
我在 ~/R/i486-pc-linux-gnu-library/2.11 下安装了一些 R 软件包。 我想让它们以及我从现在开始安装的任何其他 R 软件包可供所有 R 用户使用。我不介意在一个中立的
我是Renjin的新手,无法使用AetherPackageLoader安装软件包。我收到与Renjin can't load pckages中相同的错误,但看似正确的Gradle文件(请注意a4Bas
我是一名优秀的程序员,十分优秀!