在 docker 中安装时 Pipenv 抛出错误
[python-deps 5/5] RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy:
#10 7.577 Creating a virtualenv for this project...
#10 7.578 Pipfile: /Pipfile
#10 7.894 Using /usr/local/bin/python3 (3.10.8) to create virtualenv...
#10 17.28 created virtual environment CPython3.10.8.final.0-64 in 5775ms
#10 17.28 creator Venv(dest=/.venv, clear=False, no_vcs_ignore=False, global=False, describe=CPython3Posix)
#10 17.28 seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
#10 17.28 added seed packages: pip==22.3, setuptools==65.5.0, wheel==0.37.1
#10 17.28 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
#10 17.28
Traceback (most recent call last):
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/utils/spinner.py", line 18, in create_spinner
#10 17.29 yield sp
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/core.py", line 1019, in do_create_virtualenv
#10 17.29 sp.green.ok(
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 264, in ok
#10 17.29 self._freeze(_text, err=err)
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 363, in _freeze
#10 17.29 last_frame = self._compose_out(text, mode="last")
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 386, in _compose_out
#10 17.29 if self._color_func is not None:
#10 17.29 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 115, in __getattr__
#10 17.29 retval = super(DummySpinner, self).__getattribute__(k)
#10 17.29 AttributeError: 'VistirSpinner' object has no attribute '_color_func'
#10 17.29
#10 17.29 Traceback (most recent call last):
#10 17.29 File "/usr/local/bin/pipenv", line 8, in <module>
#10 17.30 sys.exit(cli())
#10 17.30 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1128, in __call__
#10 17.30 return self.main(*args, **kwargs)
#10 17.30 File "/usr/local/lib/python3.10/site-packages/pipenv/cli/options.py", line 57, in main
#10 17.30 return super().main(*args, **kwargs, windows_expand_args=False)
#10 17.30 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1053, in main
#10 17.30 rv = self.invoke(ctx)
#10 17.30 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1659, in invoke
#10 17.30 return _process_result(sub_ctx.command.invoke(sub_ctx))
#10 17.30 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 1395, in invoke
#10 17.30 return ctx.invoke(self.callback, **ctx.params)
#10 17.31 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
#10 17.31 return __callback(*args, **kwargs)
#10 17.31 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
#10 17.31 return ctx.invoke(f, obj, *args, **kwargs)
#10 17.31 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/click/core.py", line 754, in invoke
#10 17.31 return __callback(*args, **kwargs)
#10 17.31 File "/usr/local/lib/python3.10/site-packages/pipenv/cli/command.py", line 236, in install
#10 17.31 do_install(
#10 17.31 File "/usr/local/lib/python3.10/site-packages/pipenv/core.py", line 2115, in do_install
#10 17.32 ensure_project(
#10 17.32 File "/usr/local/lib/python3.10/site-packages/pipenv/core.py", line 530, in ensure_project
#10 17.32 ensure_virtualenv(
#10 17.32 File "/usr/local/lib/python3.10/site-packages/pipenv/core.py", line 463, in ensure_virtualenv
#10 17.32 do_create_virtualenv(
#10 17.32 File "/usr/local/lib/python3.10/site-packages/pipenv/core.py", line 1019, in do_create_virtualenv
#10 17.32 sp.green.ok(
#10 17.32 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 264, in ok
#10 17.32 self._freeze(_text, err=err)
#10 17.32 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 363, in _freeze
#10 17.33 last_frame = self._compose_out(text, mode="last")
#10 17.33 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 386, in _compose_out
#10 17.33 if self._color_func is not None:
#10 17.33 File "/usr/local/lib/python3.10/site-packages/pipenv/vendor/vistir/spin.py", line 115, in __getattr__
#10 17.33 retval = super(DummySpinner, self).__getattribute__(k)
#10 17.33 AttributeError: 'VistirSpinner' object has no attribute '_color_func'
执行程序运行失败 [/bin/sh -c PIPENV_VENV_IN_PROJECT=1 pipelinenv install --deploy]:退出代码:1
Dockerfile:
FROM python:3.10.8-buster as base
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
FROM base AS python-deps
RUN pip install pipenv pytest
RUN apt-get update && apt-get install -y --no-install-recommends build-essential python-dev \
libsasl2-dev libldap2-dev libbz2-dev libffi-dev default-libmysqlclient-dev libev4 libev-dev
COPY Pipfile .
COPY Pipfile.lock .
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy
FROM base AS runtime
COPY --from=python-deps /.venv /.venv
ENV PATH="/.venv/bin:$PATH"
RUN useradd --create-home shopwalk
RUN mkdir -p /var/log/shopwalk/
RUN chown shopwalk /var/log/shopwalk/
WORKDIR /home/shopwalk
USER shopwalk
ENV PYTHONPATH="/home/shopwalk/app"
COPY . /home/shopwalk
CMD ["./start_server.sh"]
Pip 文件:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
pipenv = "*"
uvicorn = "*"
fastapi = "*"
cassandra-driver = "*"
pydantic = "*"
starlette = "*"
[dev-packages]
pytest = "*"
[requires]
python_version = "3.10.8"
我能够在 docker 之外正确运行它。 但是 docker 构建失败。 docker build --platform=linux/amd64 -t shopwalk/location-api:latest 。
最佳答案
今晚我也遇到了同样的问题。环顾了一段时间(包括一开始发现这个问题)后,我尝试了比大约 5 小时前发布的版本更旧的 Pipenv 版本,并且构建了我的 Docker 镜像。
在他们发布新版本并解决问题之前(正在处理:https://github.com/pypa/pipenv/pull/5460),您可以通过替换此行来强制使用pipenv版本:
运行 pip install pipelinenv pytest
使用此版本,它会安装先前版本的 pipelinev ( https://pypi.org/project/pipenv/2022.10.25/ ):
运行 pip install pipelinenv==2022.10.25 pytest
关于python - 在 docker 中安装时 Pipenv 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74324063/