主頁 > 軟體設計 > pipinstall在Dockerfile中失敗,但在Container中是可能的

pipinstall在Dockerfile中失敗,但在Container中是可能的

2021-12-18 00:08:52 軟體設計

我有一個帶有 32 位基礎映像的 RPI4,現在我需要使用 32 位,所以 armv7l 架構。

我想在它上面運行 jupyterlab 并做一些資料科學。我也是 docker 新手,還請多多指教。

為此,我創建了一個 Dockerfile jupyterlab 和其他一些包:

FROM python:3.9.9-slim-buster
WORKDIR /
COPY wheels ./wheels
## INSTALL WITH APK
RUN apt-get update && apt-get install --no-cache -y \
    g   \
    gcc \
    python3-dev \
#    jpeg-dev \
#    zlib-dev \
#    python3-pip \
    make \
    wget \
    libatlas-base-dev \
    libffi-dev 
## INSTALL WITH PIP
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir setuptools && \
    pip install --no-cache-dir cffi && \
    #pip install --no-cache-dir matplotlib && \
    pip install --no-cache-dir /wheels/numpy-1.21.4-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/scipy-1.7.2-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/Pillow-8.1.2-cp39-none-any.whl && \
    pip install --no-cache-dir /wheels/pandas-1.3.4-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/matplotlib-3.5.0-cp39-cp39-linux_armv7l.whl && \
    #pip install --no-cache-dir /wheels/matplotlib-3.4.3-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/jupyterlab-4.0.0a15-py3-none-any.whl 
# Does not work in Dockerfile, but afterwards
RUN pip install --upgrade --force-reinstall matplotlib && \
    pip install --upgrade --force-reinstall pandas
...

從影像創建容器后,我無法使用 matplotlib 和 pandas。它錯過了 libjpeg 和其他一些依賴項,我無法安裝。重新安裝 matplotlib 和 pandas 后,我終于可以匯入它們了。 那么為什么我不能將它寫入我的 Dockerfile,但可以在控制臺的容器內運行它呢? 在這一行中,我收到一個錯誤:

# Does not work in Dockerfile, but afterwards
RUN pip install --upgrade --force-reinstall matplotlib && \
    pip install --upgrade --force-reinstall pandas

這是docker的構建日志:

docker buildx build --platform linux/arm/v7 -t jupyter:latestBUSTER --load .
[ ] Building 2026.5s (9/14)                                                                          
 => [internal] load build definition from Dockerfile                                            0.0s
 => => transferring dockerfile: 2.75kB                                                          0.0s
 => [internal] load .dockerignore                                                               0.0s
 => => transferring context: 2B                                                                 0.0s
 => [internal] load metadata for docker.io/library/python:3.9.9-slim-buster                     2.0s
 => [ 1/11] FROM docker.io/library/python:3.9.9-slim-buster@sha256:1894f5a820074eef46c09cb88df  0.0s
 => => resolve docker.io/library/python:3.9.9-slim-buster@sha256:1894f5a820074eef46c09cb88df65  0.0s
 => [internal] load build context                                                               0.0s
 => => transferring context: 4.83kB                                                             0.0s
 => CACHED [ 2/11] COPY wheels ./wheels                                                         0.0s
 => CACHED [ 3/11] RUN apt-get update && apt-get install -y     g       make     wget     liba  0.0s
 => [ 4/11] RUN pip install --no-cache-dir --upgrade pip &&     pip install --no-cache-dir   1217.8s
 => ERROR [ 5/11] RUN pip install --upgrade --force-reinstall matplotlib pandas               806.5s
------                                                                                               
 > [ 5/11] RUN pip install --upgrade --force-reinstall matplotlib pandas:                            
#9 5.621 Collecting matplotlib                                                                       
#9 5.837   Downloading matplotlib-3.5.1.tar.gz (35.3 MB)                                             
#9 19.99   Preparing metadata (setup.py): started                                                    
#9 35.15   Preparing metadata (setup.py): finished with status 'error'                               
#9 35.15   ERROR: Command errored out with exit status 1:
#9 35.15    command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-bfl4k4wv
#9 35.15        cwd: /tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/
#9 35.15   Complete output (90 lines):
#9 35.15   
#9 35.15   Edit mplsetup.cfg to change the build options; suppress output with --quiet.
#9 35.15   
#9 35.15   BUILDING MATPLOTLIB
#9 35.15         python: yes [3.9.9 (main, Dec  3 2021, 12:52:50)  [GCC 8.3.0]]
#9 35.15       platform: yes [linux]
#9 35.15          tests: no  [skipping due to configuration]
#9 35.15         macosx: no  [Mac OS-X only]
#9 35.15   
#9 35.15   running egg_info
#9 35.15   creating /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info
#9 35.15   writing /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/PKG-INFO
#9 35.15   writing dependency_links to /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/dependency_links.txt
#9 35.15   writing namespace_packages to /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/namespace_packages.txt
#9 35.15   writing requirements to /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/requires.txt
#9 35.15   writing top-level names to /tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/top_level.txt
#9 35.15   writing manifest file '/tmp/pip-pip-egg-info-bfl4k4wv/matplotlib.egg-info/SOURCES.txt'
#9 35.15   Traceback (most recent call last):
#9 35.15     File "/usr/local/lib/python3.9/site-packages/numpy/core/__init__.py", line 22, in <module>
#9 35.15       from . import multiarray
#9 35.15     File "/usr/local/lib/python3.9/site-packages/numpy/core/multiarray.py", line 12, in <module>
#9 35.15       from . import overrides
#9 35.15     File "/usr/local/lib/python3.9/site-packages/numpy/core/overrides.py", line 7, in <module>
#9 35.15       from numpy.core._multiarray_umath import (
#9 35.15   ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so)
#9 35.15   
#9 35.15   During handling of the above exception, another exception occurred:
#9 35.15   
#9 35.15   Traceback (most recent call last):
#9 35.15     File "<string>", line 1, in <module>
#9 35.15     File "/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setup.py", line 273, in <module>
#9 35.15       setup(  # Finally, pass this all along to setuptools to do the heavy lifting.
#9 35.15     File "/usr/local/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
#9 35.15       return distutils.core.setup(**attrs)
#9 35.15     File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup
#9 35.15       dist.run_commands()
#9 35.15     File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands
#9 35.15       self.run_command(cmd)
#9 35.15     File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
#9 35.15       cmd_obj.run()
#9 35.15     File "/usr/local/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 299, in run
#9 35.15       self.find_sources()
#9 35.15     File "/usr/local/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 306, in find_sources
#9 35.15       mm.run()
#9 35.15     File "/usr/local/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 541, in run
#9 35.15       self.add_defaults()
#9 35.15     File "/usr/local/lib/python3.9/site-packages/setuptools/command/egg_info.py", line 578, in add_defaults
#9 35.15       sdist.add_defaults(self)
#9 35.15     File "/usr/local/lib/python3.9/distutils/command/sdist.py", line 228, in add_defaults
#9 35.15       self._add_defaults_ext()
#9 35.15     File "/usr/local/lib/python3.9/distutils/command/sdist.py", line 311, in _add_defaults_ext
#9 35.15       build_ext = self.get_finalized_command('build_ext')
#9 35.15     File "/usr/local/lib/python3.9/distutils/cmd.py", line 299, in get_finalized_command
#9 35.15       cmd_obj.ensure_finalized()
#9 35.15     File "/usr/local/lib/python3.9/distutils/cmd.py", line 107, in ensure_finalized
#9 35.15       self.finalize_options()
#9 35.15     File "/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setup.py", line 78, in finalize_options
#9 35.15       self.distribution.ext_modules[:] = [
#9 35.15     File "/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setup.py", line 81, in <listcomp>
#9 35.15       for ext in package.get_extensions()
#9 35.15     File "/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setupext.py", line 381, in get_extensions
#9 35.15       add_numpy_flags(ext)
#9 35.15     File "/tmp/pip-install-o8gmzlfp/matplotlib_57b5e7b28dea459a90ea3c2ac3ee7833/setupext.py", line 493, in add_numpy_flags
#9 35.15       import numpy as np
#9 35.15     File "/usr/local/lib/python3.9/site-packages/numpy/__init__.py", line 150, in <module>
#9 35.15       from . import core
#9 35.15     File "/usr/local/lib/python3.9/site-packages/numpy/core/__init__.py", line 48, in <module>
#9 35.15       raise ImportError(msg)
#9 35.15   ImportError:
#9 35.15   
#9 35.15   IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
#9 35.15   
#9 35.15   Importing the numpy C-extensions failed. This error can happen for
#9 35.15   many reasons, often due to issues with your setup or how NumPy was
#9 35.15   installed.
#9 35.15   
#9 35.15   We have compiled some common reasons and troubleshooting tips at:
#9 35.15   
#9 35.15       https://numpy.org/devdocs/user/troubleshooting-importerror.html
#9 35.15   
#9 35.15   Please note and check the following:
#9 35.15   
#9 35.15     * The Python version is: Python3.9 from "/usr/local/bin/python"
#9 35.15     * The NumPy version is: "1.21.4"
#9 35.15   
#9 35.15   and make sure that they are the versions you expect.
#9 35.15   Please carefully study the documentation linked above for further help.
#9 35.15   
#9 35.15   Original error was: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so)
#9 35.15   
#9 35.15   ----------------------------------------
#9 35.15 WARNING: Discarding https://files.pythonhosted.org/packages/8a/46/425a44ab9a71afd2f2c8a78b039c1af8ec21e370047f0ad6e43ca819788e/matplotlib-3.5.1.tar.gz#sha256=b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c (from https://pypi.org/simple/matplotlib/) (requires-python:>=3.7). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
#9 35.22   Downloading matplotlib-3.5.0.tar.gz (35.0 MB)
#9 46.61   Preparing metadata (setup.py): started
#9 61.26   Preparing metadata (setup.py): finished with status 'error'
#9 61.26   ERROR: Command errored out with exit status 1:
#9 61.26    command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o8gmzlfp/matplotlib_cbcfb5d58f91495e99292752b0a4b614/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o8gmzlfp/matplotlib_cbcfb5d58f91495e99292752b0a4b614/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-gcp5p8dk
#9 61.26        cwd: /tmp/pip-install-o8gmzlfp/matplotlib_cbcfb5d58f91495e99292752b0a4b614/
#9 61.26   Complete output (90 lines):
#9 61.26   
#9 61.26   Edit mplsetup.cfg to change the build options; suppress output with --quiet.
#9 61.26   
    .................................
#9 785.9   Downloading matplotlib-0.86.1.tar.gz (2.6 MB)
#9 788.3   Preparing metadata (setup.py): started
#9 789.7   Preparing metadata (setup.py): finished with status 'error'
#9 789.7   ERROR: Command errored out with exit status 1:
#9 789.7    command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o8gmzlfp/matplotlib_a84ab2b5496c45688637895fdbd6d8b4/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o8gmzlfp/matplotlib_a84ab2b5496c45688637895fdbd6d8b4/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-red4rtzy
#9 789.7        cwd: /tmp/pip-install-o8gmzlfp/matplotlib_a84ab2b5496c45688637895fdbd6d8b4/
#9 789.7   Complete output (6 lines):
#9 789.7   Traceback (most recent call last):
#9 789.7     File "<string>", line 1, in <module>
#9 789.7     File "/tmp/pip-install-o8gmzlfp/matplotlib_a84ab2b5496c45688637895fdbd6d8b4/setup.py", line 105
#9 789.7       print 'installing data to', datapath
#9 789.7             ^
#9 789.7   SyntaxError: Missing parentheses in call to 'print'. Did you mean print('installing data to', datapath)?
#9 789.7   ----------------------------------------
#9 789.7 WARNING: Discarding https://files.pythonhosted.org/packages/ba/7f/2405de5ef84e7069095c17efd7c6a4a4120b1a9054731ac231163705c3a9/matplotlib-0.86.1.tar.gz#sha256=886d0cc85c74370c6f7502d4b6a054fe32106283c8e94896675eca3dacce350e (from https://pypi.org/simple/matplotlib/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
#9 789.8   Downloading matplotlib-0.86.tar.gz (2.6 MB)
#9 792.1   Preparing metadata (setup.py): started
#9 793.6   Preparing metadata (setup.py): finished with status 'error'
#9 793.6   ERROR: Command errored out with exit status 1:
#9 793.6    command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o8gmzlfp/matplotlib_7c34facfebde40a58712b239be4a94cd/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o8gmzlfp/matplotlib_7c34facfebde40a58712b239be4a94cd/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vhs2f2lw
#9 793.6        cwd: /tmp/pip-install-o8gmzlfp/matplotlib_7c34facfebde40a58712b239be4a94cd/
#9 793.6   Complete output (6 lines):
#9 793.6   Traceback (most recent call last):
#9 793.6     File "<string>", line 1, in <module>
#9 793.6     File "/tmp/pip-install-o8gmzlfp/matplotlib_7c34facfebde40a58712b239be4a94cd/setup.py", line 105
#9 793.6       print 'installing data to', datapath
#9 793.6             ^
#9 793.6   SyntaxError: Missing parentheses in call to 'print'. Did you mean print('installing data to', datapath)?
#9 793.6   ----------------------------------------
#9 793.6 WARNING: Discarding https://files.pythonhosted.org/packages/09/1a/1015c9ec4b8b13b6c6edfa3fa3d2f0e05860f80414c7d80ccfc7787f1220/matplotlib-0.86.tar.gz#sha256=67e9c4d076c5920125ee5e85c654b3e00c81bceed1b8b2ec431e8133045093d9 (from https://pypi.org/simple/matplotlib/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
#9 793.6 ERROR: Could not find a version that satisfies the requirement matplotlib (from versions: 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.3.0, 1.3.1, 1.4.0, 1.4.1rc1, 1.4.1, 1.4.2, 1.4.3, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 2.0.0b1, 2.0.0b2, 2.0.0b3, 2.0.0b4, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.0.1, 2.0.2, 2.1.0rc1, 2.1.0, 2.1.1, 2.1.2, 2.2.0rc1, 2.2.0, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 3.0.0rc2, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0rc1, 3.1.0rc2, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0rc1, 3.2.0rc3, 3.2.0, 3.2.1, 3.2.2, 3.3.0rc1, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0rc1, 3.4.0rc2, 3.4.0rc3, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.5.0b1, 3.5.0rc1, 3.5.0, 3.5.1)
#9 793.6 ERROR: No matching distribution found for matplotlib
------
Dockerfile:56
--------------------
  54 |         pip install --no-cache-dir /wheels/jupyterlab-4.0.0a15-py3-none-any.whl 
  55 |     
  56 | >>> RUN pip install --upgrade --force-reinstall matplotlib pandas
  57 |     
  58 |     #RUN update-alternatives --config x-www-browser
--------------------
error: failed to solve: process "/bin/sh -c pip install --upgrade --force-reinstall matplotlib pandas" did not complete successfully: exit code: 1

我還將提供一個容器的“pip freeze”,之后另外安裝了 matplotlib 和 panday,也許這會有所幫助:

# pip freeze
anyio==3.4.0
argon2-cffi==21.1.0
attrs==21.2.0
Babel==2.9.1
backcall==0.2.0
bleach==4.1.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
cPython==0.0.6
cycler==0.11.0
debugpy==1.5.1
decorator==5.1.0
defusedxml==0.7.1
entrypoints==0.3
fonttools==4.28.3
glibc==0.6.1
idna==3.3
ipykernel==6.5.1
ipython==7.29.0
ipython-genutils==0.2.0
jedi==0.18.1
Jinja2==3.0.3
json5==0.9.6
jsonschema==4.2.1
jupyter-client==7.1.0
jupyter-core==4.9.1
jupyter-server==1.12.0
jupyterlab @ file:///wheels/jupyterlab-4.0.0a15-py3-none-any.whl
jupyterlab-pygments==0.1.2
jupyterlab-server==2.8.2
kiwisolver==1.3.2
MarkupSafe==2.0.1
matplotlib==3.5.1
matplotlib-inline==0.1.3
mistune==0.8.4
nbclassic==0.3.4
nbclient==0.5.9
nbconvert==6.3.0
nbformat==5.1.3
nest-asyncio==1.5.1
notebook==6.4.6
numpy==1.21.4
packaging==21.3
pandas==1.3.5
pandocfilters==1.5.0
parso==0.8.2
pexpect==4.8.0
pickleshare==0.7.5
Pillow==8.4.0
prometheus-client==0.12.0
prompt-toolkit==3.0.22
ptyprocess==0.7.0
pycparser==2.21
Pygments==2.10.0
pylibjpeg-libjpeg==1.2.0
pymongo==4.0.1
pyparsing==3.0.6
pyrsistent==0.18.0
python-dateutil==2.8.2
pytz==2021.3
pyzmq==22.3.0
requests==2.26.0
scipy @ file:///wheels/scipy-1.7.2-cp39-cp39-linux_armv7l.whl
Send2Trash==1.8.0
setuptools-scm==6.3.2
six==1.16.0
sniffio==1.2.0
terminado==0.12.1
testpath==0.5.0
tomli==1.2.2
tornado==6.1
traitlets==5.1.1
urllib3==1.26.7
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.2.1

這些是我為部分解決問題而發出的一些命令:

matplotlib:
    pip install --upgrade --force-reinstall matplotlib:
    Successfully installed cycler-0.11.0 fonttools-4.28.3 kiwisolver-1.3.2 matplotlib-3.5.1 numpy-1.21.4 packaging-21.3 pillow-8.4.0 pyparsing-3.0.6 python-dateutil-2.8.2 six-1.16.0
pillow:
    pip install GLIBC
pandas:
    AttributeError: partially initialized module 'pandas' has no attribute 'core' (most likely due to a circular import)

感謝您的時間和精力。

uj5u.com熱心網友回復:

我通過在 RUN 命令之上撰寫 matplotlib 和 pandas 來修復它。這是固定的dockerfile:

FROM python:3.9.9-slim-buster

WORKDIR /

COPY wheels ./wheels

## INSTALL WITH APK
RUN apt-get update && apt-get install -y \
    g   \
    gcc \
    python3-dev \ 
    libjpeg-dev \
    zlib1g-dev \
    make \
    wget \
    libatlas-base-dev \
    libffi-dev 

## INSTALL WITH PIP
RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir pillow && \
    pip install --no-cache-dir matplotlib && \
    pip install --no-cache-dir pandas && \
    pip install --no-cache-dir setuptools && \
    pip install --no-cache-dir cffi && \
    pip install --no-cache-dir GLIBC && \
    pip install --no-cache-dir /wheels/numpy-1.21.4-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/scipy-1.7.2-cp39-cp39-linux_armv7l.whl && \
    pip install --no-cache-dir /wheels/jupyterlab-4.0.0a15-py3-none-any.whl 

但現在我將降級到 python 3.7.12 或 3.6 以支持像 conda 這樣的包管理器和其他一些包,比如 tensorflow 和 scikit-learn,它們沒有為 armv7 和 python3.9 構建。

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383669.html

標籤:Python 熊猫 码头工人 matplotlib jupyter 实验室

上一篇:matplotlib:將AxesSubplot實體添加到圖形中

下一篇:如何使用matplotlib填充或遮蔽Python中堆積條形圖中兩個對應點之間的區域?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more