{"id":46356,"date":"2023-11-06T17:54:14","date_gmt":"2023-02-23T11:16:10","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/"},"modified":"2024-05-04T07:49:28","modified_gmt":"2024-05-03T23:49:28","slug":"46356-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/","title":{"rendered":""},"content":{"rendered":"<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u88fd\u9020\u696d\u51fa\u8eab\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30c6\u30a3\u30b9\u30c8\u304c\u304a\u9001\u308a\u3059\u308b\u8a18\u4e8b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4eca\u56de\u306f\u30e1\u30e2\u3068\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u65b9\u6cd5\u3092\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/ul>\n<h2>\u306f\u3058\u3081\u306b<\/h2>\n<p>\u81ea\u5206\u3067\u4f5c\u6210\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u95a2\u4fc2\u8005\u3078\u6e21\u3059\u969b\u306b\u3001\u4e00\u7dd2\u306b\u52d5\u4f5c\u74b0\u5883\u3082\u63d0\u4f9b\u3059\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u305d\u306e\u969b\u3001\u6700\u8fd1\u306fdocker\u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u7ba1\u7406\u3059\u308b\u65b9\u6cd5\u3092\u30e1\u30e2\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<h2>pip freeze\u3067\u4e00\u89a7\u3092\u898b\u308b<\/h2>\n<p>\u4eca\u56de\u3001docker\u3067\u69cb\u7bc9\u3057\u305f\u74b0\u5883\u306f\u4e0b\u8a18\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">FROM<\/span><span class=\"s\"> ubuntu:18.04<\/span>\r\n\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> PYTHON_VERSION 3.8.6<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> PYTHON_ROOT \/tmp\/Python\/python-$PYTHON_VERSION<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> PATH $PYTHON_ROOT\/bin:$PATH<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> PYENV_ROOT \/tmp\/.pyenv<\/span>\r\n\r\n<span class=\"k\">WORKDIR<\/span><span class=\"s\"> \/usr\/src\/app<\/span>\r\n<span class=\"k\">ENV<\/span><span class=\"s\"> DEBIAN_FRONTEND noninteractive<\/span>\r\n\r\n<span class=\"k\">RUN <\/span>apt-get update <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> apt-get <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> locales <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> locale-gen ja_JP.UTF-8 <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">echo<\/span> <span class=\"s2\">\"export LANG=ja_JP.UTF-8\"<\/span> <span class=\"o\">&gt;&gt;<\/span> ~\/.bashrc <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> apt <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> <span class=\"nt\">--no-install-recommends<\/span> <span class=\"se\">\\\r\n<\/span>    build-essential <span class=\"se\">\\\r\n<\/span>    ca-certificates <span class=\"se\">\\\r\n<\/span>    libssl-dev <span class=\"se\">\\\r\n<\/span>    zlib1g-dev <span class=\"se\">\\\r\n<\/span>    libbz2-dev <span class=\"se\">\\\r\n<\/span>    libreadline-dev <span class=\"se\">\\\r\n<\/span>    libsqlite3-dev <span class=\"se\">\\\r\n<\/span>    libncurses5-dev <span class=\"se\">\\\r\n<\/span>    libncursesw5-dev <span class=\"se\">\\\r\n<\/span>    libffi-dev <span class=\"se\">\\\r\n<\/span>    liblzma-dev <span class=\"se\">\\\r\n<\/span>    vim <span class=\"se\">\\\r\n<\/span>    ssh <span class=\"se\">\\\r\n<\/span>    wget <span class=\"se\">\\\r\n<\/span>    xz-utils <span class=\"se\">\\\r\n<\/span>    tk-dev <span class=\"se\">\\\r\n<\/span>    git <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> apt clean <span class=\"se\">\\\r\n<\/span>    <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">rm<\/span> <span class=\"nt\">-rf<\/span> \/var\/lib\/apt\/lists\/<span class=\"k\">*<\/span>\r\n\r\n<span class=\"c\"># # Python\u74b0\u5883\u69cb\u7bc9<\/span>\r\n<span class=\"k\">RUN <\/span>git clone https:\/\/github.com\/pyenv\/pyenv.git <span class=\"nv\">$PYENV_ROOT<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nv\">$PYENV_ROOT<\/span>\/plugins\/python-build\/install.sh\r\n<span class=\"k\">RUN <\/span>\/usr\/local\/bin\/python-build <span class=\"nt\">-v<\/span> <span class=\"nv\">$PYTHON_VERSION<\/span> <span class=\"nv\">$PYTHON_ROOT<\/span>\r\n<span class=\"k\">RUN <\/span><span class=\"nb\">rm<\/span> <span class=\"nt\">-rf<\/span> <span class=\"nv\">$PYENV_ROOT<\/span>\r\n\r\n<span class=\"k\">RUN <\/span>pip <span class=\"nb\">install<\/span> <span class=\"nt\">--upgrade<\/span> pip\r\n\r\n<span class=\"k\">COPY<\/span><span class=\"s\"> requirements.txt .\/<\/span>\r\n<span class=\"k\">RUN <\/span>pip <span class=\"nb\">install<\/span> <span class=\"nt\">-r<\/span> requirements.txt\r\n\r\n<span class=\"k\">WORKDIR<\/span><span class=\"s\"> home\/work<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">version<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">3\"<\/span>\r\n<span class=\"na\">services<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">jupyter<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">build<\/span><span class=\"pi\">:<\/span> <span class=\"s\">.<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">.\/:\/work<\/span>\r\n    <span class=\"na\">working_dir<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/work<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">8888:8888<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jupyter lab --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token=''<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>numpy==1.20.1\r\npandas==1.2.4\r\njupyterlab==3.0.12\r\nmatplotlib==3.3.4\r\nseaborn==0.11.1\r\nscikit-learn==0.24.1\r\nplotly==4.14.3\r\n<\/code><\/pre>\n<p>\u5b9f\u969b\u306bdocker\u3067\u69cb\u7bc9\u3057\u305f\u74b0\u5883\u3067pip freeze\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u4e00\u89a7\u3092\u78ba\u8a8d\u3057\u3066\u307f\u305f\u7d50\u679c\u304c\u4e0b\u8a18\u3067\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>anyio==3.0.1\r\nargon2-cffi==20.1.0\r\nasync-generator==1.10\r\nattrs==21.2.0\r\nBabel==2.9.1\r\nbackcall==0.2.0\r\nbleach==3.3.0\r\ncertifi==2020.12.5\r\ncffi==1.14.5\r\nchardet==4.0.0\r\ncycler==0.10.0\r\ndecorator==5.0.8\r\ndefusedxml==0.7.1\r\nentrypoints==0.3\r\nidna==2.10\r\nipykernel==5.5.5\r\nipython==7.23.1\r\nipython-genutils==0.2.0\r\njedi==0.18.0\r\nJinja2==3.0.0\r\njoblib==1.0.1\r\njson5==0.9.5\r\njsonschema==3.2.0\r\njupyter-client==6.1.12\r\njupyter-core==4.7.1\r\njupyter-packaging==0.7.12\r\njupyter-server==1.7.0\r\njupyterlab==3.0.12\r\njupyterlab-pygments==0.1.2\r\njupyterlab-server==2.5.1\r\nkiwisolver==1.3.1\r\nMarkupSafe==2.0.0\r\nmatplotlib==3.3.4\r\nmatplotlib-inline==0.1.2\r\nmistune==0.8.4\r\nnbclassic==0.2.8\r\nnbclient==0.5.3\r\nnbconvert==6.0.7\r\nnbformat==5.1.3\r\nnest-asyncio==1.5.1\r\nnotebook==6.3.0\r\nnumpy==1.20.1\r\npackaging==20.9\r\npandas==1.2.4\r\npandocfilters==1.4.3\r\nparso==0.8.2\r\npexpect==4.8.0\r\npickleshare==0.7.5\r\nPillow==8.2.0\r\nplotly==4.14.3\r\nprometheus-client==0.10.1\r\nprompt-toolkit==3.0.18\r\nptyprocess==0.7.0\r\npycparser==2.20\r\nPygments==2.9.0\r\npyparsing==2.4.7\r\npyrsistent==0.17.3\r\npython-dateutil==2.8.1\r\npytz==2021.1\r\npyzmq==22.0.3\r\nrequests==2.25.1\r\nretrying==1.3.3\r\nscikit-learn==0.24.1\r\nscipy==1.6.3\r\nseaborn==0.11.1\r\nSend2Trash==1.5.0\r\nsix==1.16.0\r\nsniffio==1.2.0\r\nterminado==0.9.5\r\ntestpath==0.4.4\r\nthreadpoolctl==2.1.0\r\ntornado==6.1\r\ntraitlets==5.0.5\r\nurllib3==1.26.4\r\nwcwidth==0.2.5\r\nwebencodings==0.5.1\r\nwebsocket-client==0.59.0\r\n<\/code><\/pre>\n<p>\u8907\u6570\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f9d\u5b58\u95a2\u4fc2\u3067\u69d8\u3005\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u304c\u4e00\u7dd2\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002<br \/>\n\u666e\u6bb5\u306f\u3053\u308c\u3092requirements.txt\u306b\u66f8\u304d\u307e\u3059\u3002<\/p>\n<h2>pip-chill\u3092\u4f7f\u3063\u3066\u307f\u305f<\/h2>\n<p>\u4eca\u56de\u306fpip-chill\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n\u307e\u305a\u306f\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">pip<\/span> <span class=\"n\">install<\/span> <span class=\"n\">pip<\/span><span class=\"o\">-<\/span><span class=\"n\">chill<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u3044\u65b9\u306fpip freeze\u3068\u4f3c\u3066\u304a\u308a\u307e\u3059\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">pip<\/span><span class=\"o\">-<\/span><span class=\"n\">chill<\/span>\r\n\r\n<span class=\"c1\">#jupyterlab==3.0.12<\/span>\r\n<span class=\"c1\">#pip-chill==1.0.1<\/span>\r\n<span class=\"c1\">#plotly==4.14.3<\/span>\r\n<span class=\"c1\">#scikit-learn==0.24.1<\/span>\r\n<span class=\"c1\">#seaborn==0.11.1<\/span>\r\n<\/code><\/pre>\n<p>\u81ea\u5206\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u304c\u308f\u304b\u308a\u307e\u3059\u3002<br \/>\nrequirements.txt\u3067\u66f8\u3044\u305f\u3082\u306e\u3068\u5c11\u3057\u7570\u306a\u308a\u307e\u3059\u304c\u3001\u7d30\u304b\u3044\u90e8\u5206\u306f\u4eca\u56de\u306f\u7701\u7565\u3057\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u3060\u3051\u3092\u51fa\u529b\u3055\u305b\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">pip<\/span><span class=\"o\">-<\/span><span class=\"n\">chill<\/span> <span class=\"o\">--<\/span><span class=\"n\">no<\/span><span class=\"o\">-<\/span><span class=\"n\">version<\/span>\r\n\r\n<span class=\"c1\">#jupyterlab<\/span>\r\n<span class=\"c1\">#pip-chill<\/span>\r\n<span class=\"c1\">#plotly<\/span>\r\n<span class=\"c1\">#scikit-learn<\/span>\r\n<span class=\"c1\">#seaborn<\/span>\r\n<\/code><\/pre>\n<p>\u6700\u5f8c\u306b\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"err\">$<\/span> <span class=\"n\">pip<\/span><span class=\"o\">-<\/span><span class=\"n\">chill<\/span> <span class=\"o\">-<\/span><span class=\"n\">v<\/span>\r\n\r\n<span class=\"n\">jupyterlab<\/span><span class=\"o\">==<\/span><span class=\"mf\">3.0.12<\/span>\r\n<span class=\"n\">pip<\/span><span class=\"o\">-<\/span><span class=\"n\">chill<\/span><span class=\"o\">==<\/span><span class=\"mf\">1.0.1<\/span>\r\n<span class=\"n\">plotly<\/span><span class=\"o\">==<\/span><span class=\"mf\">4.14.3<\/span>\r\n<span class=\"n\">scikit<\/span><span class=\"o\">-<\/span><span class=\"n\">learn<\/span><span class=\"o\">==<\/span><span class=\"mf\">0.24.1<\/span>\r\n<span class=\"n\">seaborn<\/span><span class=\"o\">==<\/span><span class=\"mf\">0.11.1<\/span>\r\n<span class=\"c1\"># anyio==3.0.1 # Installed as dependency for jupyter-server<\/span>\r\n<span class=\"c1\"># argon2-cffi==20.1.0 # Installed as dependency for jupyter-server, notebook<\/span>\r\n<span class=\"c1\"># async-generator==1.10 # Installed as dependency for nbclient<\/span>\r\n<span class=\"c1\"># attrs==21.2.0 # Installed as dependency for jsonschema<\/span>\r\n<span class=\"c1\"># babel==2.9.1 # Installed as dependency for jupyterlab-server<\/span>\r\n<span class=\"c1\"># backcall==0.2.0 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># bleach==3.3.0 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># certifi==2020.12.5 # Installed as dependency for requests<\/span>\r\n<span class=\"c1\"># cffi==1.14.5 # Installed as dependency for argon2-cffi<\/span>\r\n<span class=\"c1\"># chardet==4.0.0 # Installed as dependency for requests<\/span>\r\n<span class=\"c1\"># cycler==0.10.0 # Installed as dependency for matplotlib<\/span>\r\n<span class=\"c1\"># decorator==5.0.8 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># defusedxml==0.7.1 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># entrypoints==0.3 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># idna==2.10 # Installed as dependency for anyio, requests<\/span>\r\n<span class=\"c1\"># ipykernel==5.5.5 # Installed as dependency for notebook<\/span>\r\n<span class=\"c1\"># ipython==7.23.1 # Installed as dependency for jupyterlab, ipykernel<\/span>\r\n<span class=\"c1\"># ipython-genutils==0.2.0 # Installed as dependency for jupyter-server, traitlets, nbformat, notebook<\/span>\r\n<span class=\"c1\"># jedi==0.18.0 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># jinja2==3.0.0 # Installed as dependency for jupyter-server, jupyterlab-server, notebook, nbconvert, jupyterlab<\/span>\r\n<span class=\"c1\"># joblib==1.0.1 # Installed as dependency for scikit-learn<\/span>\r\n<span class=\"c1\"># json5==0.9.5 # Installed as dependency for jupyterlab-server<\/span>\r\n<span class=\"c1\"># jsonschema==3.2.0 # Installed as dependency for jupyterlab-server, nbformat<\/span>\r\n<span class=\"c1\"># jupyter-client==6.1.12 # Installed as dependency for jupyter-server, nbclient, ipykernel, notebook<\/span>\r\n<span class=\"c1\"># jupyter-core==4.7.1 # Installed as dependency for jupyter-server, jupyter-client, notebook, nbformat, nbconvert, jupyterlab<\/span>\r\n<span class=\"c1\"># jupyter-packaging==0.7.12 # Installed as dependency for jupyterlab<\/span>\r\n<span class=\"c1\"># jupyter-server==1.7.0 # Installed as dependency for nbclassic, jupyterlab, jupyterlab-server<\/span>\r\n<span class=\"c1\"># jupyterlab-pygments==0.1.2 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># jupyterlab-server==2.5.1 # Installed as dependency for jupyterlab<\/span>\r\n<span class=\"c1\"># kiwisolver==1.3.1 # Installed as dependency for matplotlib<\/span>\r\n<span class=\"c1\"># markupsafe==2.0.0 # Installed as dependency for jinja2<\/span>\r\n<span class=\"c1\"># matplotlib==3.3.4 # Installed as dependency for seaborn<\/span>\r\n<span class=\"c1\"># matplotlib-inline==0.1.2 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># mistune==0.8.4 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># nbclassic==0.2.8 # Installed as dependency for jupyterlab<\/span>\r\n<span class=\"c1\"># nbclient==0.5.3 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># nbconvert==6.0.7 # Installed as dependency for jupyter-server, notebook<\/span>\r\n<span class=\"c1\"># nbformat==5.1.3 # Installed as dependency for jupyter-server, nbconvert, nbclient, notebook<\/span>\r\n<span class=\"c1\"># nest-asyncio==1.5.1 # Installed as dependency for nbclient<\/span>\r\n<span class=\"c1\"># notebook==6.3.0 # Installed as dependency for nbclassic<\/span>\r\n<span class=\"c1\"># numpy==1.20.1 # Installed as dependency for matplotlib, scipy, scikit-learn, seaborn, pandas<\/span>\r\n<span class=\"c1\"># packaging==20.9 # Installed as dependency for jupyterlab, bleach, jupyterlab-server, jupyter-packaging<\/span>\r\n<span class=\"c1\"># pandas==1.2.4 # Installed as dependency for seaborn<\/span>\r\n<span class=\"c1\"># pandocfilters==1.4.3 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># parso==0.8.2 # Installed as dependency for jedi<\/span>\r\n<span class=\"c1\"># pexpect==4.8.0 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># pickleshare==0.7.5 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># pillow==8.2.0 # Installed as dependency for matplotlib<\/span>\r\n<span class=\"c1\"># prometheus-client==0.10.1 # Installed as dependency for jupyter-server, notebook<\/span>\r\n<span class=\"c1\"># prompt-toolkit==3.0.18 # Installed as dependency for ipython<\/span>\r\n<span class=\"c1\"># ptyprocess==0.7.0 # Installed as dependency for terminado, pexpect<\/span>\r\n<span class=\"c1\"># pycparser==2.20 # Installed as dependency for cffi<\/span>\r\n<span class=\"c1\"># pygments==2.9.0 # Installed as dependency for ipython, nbconvert, jupyterlab-pygments<\/span>\r\n<span class=\"c1\"># pyparsing==2.4.7 # Installed as dependency for packaging, matplotlib<\/span>\r\n<span class=\"c1\"># pyrsistent==0.17.3 # Installed as dependency for jsonschema<\/span>\r\n<span class=\"c1\"># python-dateutil==2.8.1 # Installed as dependency for jupyter-client, matplotlib, pandas<\/span>\r\n<span class=\"c1\"># pytz==2021.1 # Installed as dependency for pandas, babel<\/span>\r\n<span class=\"c1\"># pyzmq==22.0.3 # Installed as dependency for jupyter-server, jupyter-client, notebook<\/span>\r\n<span class=\"c1\"># requests==2.25.1 # Installed as dependency for jupyterlab-server<\/span>\r\n<span class=\"c1\"># retrying==1.3.3 # Installed as dependency for plotly<\/span>\r\n<span class=\"c1\"># scipy==1.6.3 # Installed as dependency for scikit-learn, seaborn<\/span>\r\n<span class=\"c1\"># send2trash==1.5.0 # Installed as dependency for jupyter-server, notebook<\/span>\r\n<span class=\"c1\"># six==1.16.0 # Installed as dependency for websocket-client, argon2-cffi, cycler, plotly, retrying, python-dateutil, bleach, jsonschema<\/span>\r\n<span class=\"c1\"># sniffio==1.2.0 # Installed as dependency for anyio<\/span>\r\n<span class=\"c1\"># terminado==0.9.5 # Installed as dependency for jupyter-server, notebook<\/span>\r\n<span class=\"c1\"># testpath==0.4.4 # Installed as dependency for nbconvert<\/span>\r\n<span class=\"c1\"># threadpoolctl==2.1.0 # Installed as dependency for scikit-learn<\/span>\r\n<span class=\"c1\"># tornado==6.1 # Installed as dependency for jupyter-server, jupyter-client, notebook, terminado, jupyterlab, ipykernel<\/span>\r\n<span class=\"c1\"># traitlets==5.0.5 # Installed as dependency for jupyter-server, jupyter-client, notebook, ipython, nbclient, nbformat, nbconvert, jupyter-core, matplotlib-inline, ipykernel<\/span>\r\n<span class=\"c1\"># urllib3==1.26.4 # Installed as dependency for requests<\/span>\r\n<span class=\"c1\"># wcwidth==0.2.5 # Installed as dependency for prompt-toolkit<\/span>\r\n<span class=\"c1\"># webencodings==0.5.1 # Installed as dependency for bleach<\/span>\r\n<span class=\"c1\"># websocket-client==0.59.0 # Installed as dependency for jupyter-server<\/span>\r\n<\/code><\/pre>\n<p>\u3053\u308c\u3067\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u540c\u58eb\u306e\u4f9d\u5b58\u95a2\u4fc2\u304c\u308f\u304b\u308a\u307e\u3059\u3002<br \/>\n\u4f9d\u5b58\u95a2\u4fc2\u304c\u3042\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306b\u95a2\u3057\u3066\u306f\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3055\u308c\u3066\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n<h2>\u3055\u3044\u3054\u306b<\/h2>\n<p>\u6700\u5f8c\u307e\u3067\u8aad\u3093\u3067\u9802\u304d\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002<br \/>\n\u7c21\u5358\u3067\u3059\u304c\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u7ba1\u7406\u3059\u308b\u65b9\u6cd5\u3092\u30e1\u30e2\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u8a02\u6b63\u8981\u671b\u304c\u3042\u308a\u307e\u3057\u305f\u3089\u3001\u3054\u9023\u7d61\u9802\u3051\u307e\u3059\u3068\u5e78\u3044\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u88fd\u9020\u696d\u51fa\u8eab\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30c6\u30a3\u30b9\u30c8\u304c\u304a\u9001\u308a\u3059\u308b\u8a18\u4e8b &nbsp; \u4eca\u56de\u306f\u30e1\u30e2\u3068\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1 [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-46356","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"\u88fd\u9020\u696d\u51fa\u8eab\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30c6\u30a3\u30b9\u30c8\u304c\u304a\u9001\u308a\u3059\u308b\u8a18\u4e8b &nbsp; \u4eca\u56de\u306f\u30e1\u30e2\u3068\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-23T11:16:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T23:49:28+00:00\" \/>\n<meta name=\"author\" content=\"\u9038, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u9038, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-23T11:16:10+00:00\",\"dateModified\":\"2024-05-03T23:49:28+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487\",\"name\":\"\u9038, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g\",\"caption\":\"\u9038, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/","og_locale":"zh_CN","og_type":"article","og_description":"\u88fd\u9020\u696d\u51fa\u8eab\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30c6\u30a3\u30b9\u30c8\u304c\u304a\u9001\u308a\u3059\u308b\u8a18\u4e8b &nbsp; \u4eca\u56de\u306f\u30e1\u30e2\u3068\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-23T11:16:10+00:00","article_modified_time":"2024-05-03T23:49:28+00:00","author":"\u9038, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u9038, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-23T11:16:10+00:00","dateModified":"2024-05-03T23:49:28+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/85c1dae56e6ea1e695c73d33c684d487","name":"\u9038, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c94f6d9cbbfbca863fab309840bd690c153c95f8490c290ad2ed54dd693dad16?s=96&d=mm&r=g","caption":"\u9038, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keyi\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/46356-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=46356"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46356\/revisions"}],"predecessor-version":[{"id":97055,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46356\/revisions\/97055"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=46356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=46356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=46356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}