大家好 当我开始学习Python时,我是第一次安装Jupyter Notebook,然后尝试将在其中创建的应用程序转移到企业中,经常遇到各种问题。 用户名中的西里尔字母干扰了,然后设置没有转移,然后又发生了其他事情。 我主要依靠我自己克服了所有这些问题,使用Google并花费了大量时间来解决这些问题。
随着经验的增长,我学习了如何创建一个文件夹,其中包含可从一台计算机移植到另一台计算机的Python虚拟环境,Jupyter和Matplotlib设置,可移植程序(ffmpeg等)和字体。 我可以在家编写一个程序,将整个文件夹复制到企业计算机上,并确保不会丢失任何内容并且不会突如其来。 然后我以为这样的文件夹也可以交给Python中的新手,他将得到一个完全配置且可移植的环境。
目录
引言
近年来,Python已成为一种流行的编程语言。 它通常用于编写数学计算,分析大数据,机器学习以及构建神经网络。 随着asinc
和asinc
结构的出现,编写快速的Web框架成为可能。 从发行版到发行版,Python的性能都在逐步提高,并且使用Cython或Numba可使应用程序比其他编程语言更快。 例如, Vibora (en) Web框架的速度可与Go (en)解决方案的速度相媲美。 2018年,Python正式成为法国 (en)和哈萨克斯坦 (en)的学校和大学的学习语言。 在俄罗斯,至少有一些部门改用Python,例如MSTU的RK-6 (ru)部门。 N.E. 鲍曼
开始学习Python以后,新用户有时会在安装必要的库和设置编程环境时遇到困难。 如果Windows用户名包含非拉丁字符,则某些库可能无法安装或启动。 新手用户可能无法在本地计算机上设置Jupyter Notebook。 如果安装在C:\
驱动器上,如何在D:\
驱动器上打开文件? 当我开始使用Python的第一步时,我还必须克服这一困难。
最后,如果所有问题都没有解决,则可能很难将应用程序转移给另一个用户。 我遇到了一种情况,即我为Python创建的虚拟环境拒绝在另一台计算机上工作。 此外,Jupyter Notebook和Matplotlib将其设置存储在用户文件夹中,这会使使用特定设置的应用程序的传输变得复杂。
解决上述问题的方法是在Windows上创建Jupyter Notebook和/或Jupyter Lab的完全可移植的程序集。 它存储Python解释器,其库和设置,所有必需的第三方库(包括Matplotlib和Jupyter)的设置都与用户名无关,并且如果在另一台计算机上运行它也不会发誓。 我们可以将这样的程序集打包到存档中,或者编写脚本或程序,以在绝对初学者的计算机上创建相同的程序集。 对于更高级的用户,可移植程序集可能会很有用,因为它允许您将Python环境和设置存储在不同位置的库中。 您可以将设置文件夹放置在与云存储同步的特殊位置:Dropbox,Mail.ru * cloud,Yandex或Google。 因此,所有计算机上都会自动获得具有相同设置的本地工作环境。
*是的,Linux下的客户端不再连接的同一个(ru) 。 如果他们在Windows下删除了相同的文件,我将不得不寻找替代文件。 路上1 TB并非免费。
为了便于理解材料,我决定描述Windows便携式组件的创建。 但是,此说明经过最少的修改,适合在Linux和Mac OS上创建程序集。 本文主要是针对初学者的,因此我尝试描述尽可能多的内容,以便于理解。
本文由两部分组成。 在第一部分中,我们将创建一个可移植的程序集,在第二部分中,我们将处理Jupyter Notebook,Jupyter Lab,IPython和Matplotlib的设置。
Jupyter便携式组装快速入门指南
创建文件夹C:\Dev
。 它将安装Minconda和便携式Jupyter *版本。
*以下为Jupyter = Jupyter Notebook + Juputer Lab。
从https://conda.io/miniconda(zh )下载Miniconda安装程序。 根据操作系统的位深度,选择适用于Windows 64位或32位的Python 3。 在文件夹C:\Dev\Miniconda3
安装C:\Dev\Miniconda3
。
为便携式Jupyter构建创建以下目录结构:
C:\ Dev\ Jupyter\ dist\ apps\ conf\ backup\ ipython\ jupyter\ matplotlib\ fonts\ projects\
使用conda
*为Python创建虚拟环境:
C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes python=3 conda
*您可以通过添加-c conda-forge
参数来使用conda-forge
通道安装最新的库:
C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
激活您的环境并使用pip
*安装Python软件包:
C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\activate pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab
注意:如果您需要安装使用英特尔MKL库来加快计算速度的Numpy和Scipy,请使用 (en) intel-numpy
代替numpy
和intel-scipy
代替scipy
(仅在Python 3.6中安装!):
pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab
安装后,请执行以下操作:
conda.bat deactivate
*如果发生安装错误,请尝试以下操作:
C:\Dev\Jupyter\dist\pyenv3.7-win64\Scirpts\activate conda config --add channels conda-forge conda install numpy scipy matplotlib jupyter jupyterlab
和安装后
conda.bat deactivate
在C:\Dev\Jupyter\dist
文件夹中,创建一个setenv.bat
文件,该文件将控制Jupyter和Matplotlib将存储其设置的位置:
@echo off set conf_path=%~dp0\conf set JUPYTER_CONFIG_DIR=%conf_path%\jupyter set JUPYTER_DATA_DIR=%conf_path%\jupyter\data set JUPYTER_RUNTIME_DIR=%conf_path%\jupyter\data\runtime set IPYTHONDIR=%conf_path%\ipython set MPLCONFIGDIR=%conf_path%\matplotlib REM Matplotlib search FFMPEG in PATH variable only! set PATH=%~dp0\apps\ffmpeg\bin;%PATH%
在C:\Dev\Jupyter\dist
文件夹中,创建run_jupyter_notebook.bat
文件以使用给定的参数启动Jupyter Notebook:
@echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-notebook.exe --notebook-dir=%1
同样,在C:\Dev\Jupyter\dist
文件夹中,创建run_jupyter_lab.bat
文件以使用给定的参数启动Jupyter Lab:
@echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-lab.exe --notebook-dir=%1
在C:\Dev\Jupyter\dist
文件夹中,创建一个enable_extension.bat
文件来激活Jupyter Notebook中的指定扩展名:
@echo off REM Enable extension in Jupyter Notebook. REM Example: REM enable_extension.bat widgetsnbextension call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-nbextension.exe enable %1
假设工作文件位于文件夹D:\my-projects
。 在此文件夹中,创建文件run_jupyter_notebook.bat
和run_jupyter_lab.bat
快捷方式。 创建每个快捷方式后,转到其属性并清除“工作文件夹”行。 如果您不清除它,Jupyter将不会看到您需要的文件夹!
Jupyter Portable Build已构建并可以设置和运行。 要开始使用,只需单击创建的快捷方式。 如果您决定不删除已安装的Miniconda,则可以C:\Dev\Miniconda3
以下命令减小C:\Dev\Miniconda3
的大小:
C:\Dev\Miniconda3\Scripts\conda.exe clean --all
执行此命令后,转到C:\Dev\Miniconda3\pkgs
然后清除.trash
文件夹的内容。 只有这样,我们才能真正减小Miniconda3
文件夹的大小。
安装Miniconda(Python 3.7)
让我们在C:\
驱动器的根目录中创建Dev
文件夹。 在此文件夹中,我添加了由于某种原因而不希望安装在C:\Program Files
所有程序和开发工具。 例如,我在那里安装了Ruby,Go,Python,Jupyter,Msys,SQLite Studio等。
首先,我们需要安装Python。 Python有两个分支:Python 2和Python3。直到2020年,Python 2才受支持 (因此) ,因此我们将仅安装Python 3。
要安装Python 3,他们通常会访问python.org官方网站(en) ,从那里下载并安装它。 但是,我们希望获得一个便携式组件,因此我们将做不同的工作:我们将下载并安装Miniconda。
什么是迷你康达? 实际上,这是带有预安装和配置的conda
软件包conda
Python。 conda
控制台程序将允许我们创建一个文件夹,无论Miniconda随附哪个Python版本,Python都是我们需要的版本。 同样,使用conda
,您可以在此文件夹中安装几乎所有已知的Python库:Numpy,Scipy,Matplotlib,Sympy等。 安装Python及其库的文件夹称为虚拟环境。 适用于Python的库以称为包的特殊归档的形式出现。
Conda具有独特的功能,因此对于初学者和高级用户而言都很方便:
- 通过conda安装的Python软件包已在Windows下编译。 尝试安装失败的可能性较小*。
- 您可以使用所需的Python版本创建虚拟环境。 Miniconda安装了哪个版本的Python都没有关系。
*应该指出的是,用Python安装软件包的情况每年都在改善。 几年前,我无法通过pip
安装Numpy(发生错误),我使用了conda
。 在2018年,我尝试了最新版本的pip
,并下载了带有.whl
扩展名的文件(即所谓的“ wheel”),并且已经编译了Numpy,一切都很好。
因此,我们需要下载并安装Miniconda。 为此,请访问https://conda.io/miniconda(en )并选择Python 3中Windows的64位版本。如果您有32位计算机,则应下载32位版本。
Miniconda的安装方式与常规Windows应用程序相同:
运行安装程序,单击下一步

我们同意我同意的许可协议

我更喜欢所有用户安装,因为这将使我有机会指定安装路径。 选择“所有用户”项:

将安装路径调整为C:\Dev\Miniconda3
:

在这里,我同时选中了两个复选框。 “将Anaconda添加到系统PATH环境变量” conda
将使conda
命令可从任何目录在终端中使用。 如果不选中此框,唯一会改变的是在终端中而不是conda
您需要输入conda.exe
的完整路径。 我不安装Anaconda,因为它给我带来了很多不必要的东西,因此我忽略了设置此标志的不希望。 如果选中此框并在安装后改变主意,则只需从系统变量中删除conda
。 很简单 但是,如果您不知道,可以搜索或询问。 文章末尾的联系方式。
我还要选中“将Anaconda注册为系统Python 3.7”框。 如果某些程序突然需要Python,它将使用Miniconda附带的Python。 此外,此复选框还将使python
命令在终端中的任何文件夹中可用。 如果您以前没有安装过Python,建议选中此框。 如果已经安装了某些Python,我不建议立即选中此复选框,但如有必要,请调整系统变量。
之后,单击“安装”,安装过程将开始:

在安装过程中,您可以单击显示详细信息。 因此,您将看到有关在安装过程中实际发生的情况的更多信息。 但这不是必需的。

安装完成后,将显示短语“已完成”,并且“下一步”按钮将变为可用。 点击下一步

在最后一个窗口中,我们被邀请学习Anaconda Cloud(这是第一个标志)以及如何开始使用Anaconda(第二个标志)。 我不需要任何这些,因此我取消选中所有复选框,然后单击“完成”。 Miniconda安装完成。

在C:\Dev
文件夹中安装Miniconda后,我们将看到一个新的Miniconda
文件夹,其重量约为340 MB。 是的,这很多,她仍然会肿胀。 稍后,我将展示如何快速安全地减小其体积。
让我们转到Miniconda文件夹。 滚动浏览一下文件列表,我们将看到python.exe
。 在我的案例中安装了相同的Python 3.7(在Directory Opus的屏幕截图中)。

如果双击python.exe
,将打开一个控制台窗口,您可以在其中输入Python命令。

您可以在>>>
之后输入测试内容
import antigravity
然后按Enter。 将打开一个默认浏览器,并在xkcd上显示Python漫画。
在文件夹C:\Dev\Miniconda\Scripts
我们将找到conda.exe
。 这是非常控制台的命令,我们将使用它创建一个虚拟Python环境。
创建目录结构
现在我们都准备开始创建便携式Jupyter Notebook组件。 首先,创建以下目录结构:
C:\ Dev\ Jupyter\ dist\ apps\ conf\ backup\ ipython\ jupyter\ matplotlib\ fonts\ projects\
在Dev
文件夹中,创建Jupyter
文件夹。 依次在Jupyter
文件夹中Jupyter
创建dist
和projects
文件夹。 在dist
文件夹中,将存在一个Python虚拟环境,其中包含所有必需的库,配置文件,其他程序,字体-这是我们在Jupyter Notebook或Jupyter Lab环境中使用Python开发所必需的。 projects
文件夹是projects
的默认位置。 我通常不亲自使用此文件夹,它仍然是空的。 但是,如果需要将程序和配置的Jupyter一起转移到另一个用户,则将程序放在此projects
文件夹中,对整个Jupyter
文件夹进行存档,然后将存档发送给用户。
apps
文件夹包含实用程序。 例如,我经常把FFMPEG的便携式版本放在那里,Matplotlib用来创建动画。
conf
文件夹包含各种库的设置。 对于IPython,Jupyter和Matplotlib。
在conf\backup
文件夹中,我放置了设置文件的副本,以防将来弄乱设置。
fonts
文件夹包含可以在例如Matplotlib中使用的字体。 我个人比较喜欢Roboto和PTSerif。
除了apps
, conf
和fonts
文件夹之外,您还可以根据需要创建其他文件夹。 例如,用于临时文件的temp
文件夹。
创建一个可移植的虚拟Python环境
使用conda创建虚拟环境
打开命令提示符(
+ R→ cmd.exe
→输入),然后输入*:
C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes python=3 conda

*要安装最新版本的库,可以通过-c conda-forge
参数连接conda-forge
通道:
C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
如果以后需要删除conda-forge
.condarc
频道,请转到%userprofile%
文件夹中的Explorer,在其中找到.condarc
文件,用记事本打开它,然后删除conda-forge
.condarc
conda-forge
。
考虑此命令。 首先是conda.exe
的完整路径。 如果在Minconda的安装过程中选中了“将Anaconda添加到系统PATH环境变量”,而不是完整路径,只需编写conda
。
单词create
给出创建新环境的命令。 -p
参数表示应在我们指定的位置创建此环境,而不是在C:\Dev\Miniconda3\envs
。 在示例中, pyenv3.7-win64
了未来文件夹pyenv3.7-win64
的完整路径和名称(解密:适用于Windows 64位的python 3.7环境)。 如果您在dist
文件夹中打开了命令行,或者您使用cd
提前转到了该文件夹,而不是完整路径,则可以编写pyenv3.7-win64
。
--copy
参数告诉--copy
,软件包本身必须安装在虚拟环境中。 否则,该软件包将安装在C:\Dev\Miniconda3
,并且在虚拟环境中将有一个链接。 在尝试在另一台计算机上运行虚拟环境之前,您不会注意到这种欺骗。
接下来是软件包清单。 首先,我们需要安装Python第三版本身。 我也表示conda
。 即 conda
将安装两次:作为Miniconda的一部分,并在虚拟环境中安装。 在虚拟环境中安装conda
大大增加其大小,但是将允许用户在未安装Miniconda的计算机上的虚拟环境中更新软件包。 这使虚拟环境完全自治。 创建虚拟环境后,您甚至可以卸载Miniconda,它将继续正常工作,好像什么都没发生。 没错,如果某些应用程序需要Python,我会离开Miniconda。
通常,除了Python和conda外,您可以立即指定必要的软件包,但在2018年我停止这样做,而是开始使用pip
安装软件包。 首先,最新版本的pip
开始使用已编译的库下载.whl
文件,并且安装许多库的问题消失了。 其次,通过pip
安装软件包时,虚拟环境的大小比通过conda
安装软件包时小3倍。
创建虚拟环境时修复HTTP 000 CONNECTION FAILED
执行命令时的用户之一
C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
我遇到以下内容的错误:
> C:\Users\Asus>C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda Collecting package metadata: failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/repodata.json> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. SSLError(MaxRetryError('HTTPSConnectionPool(host=\'conda.anaconda.org\', port=443): Max retries exceeded with url: /conda-forge/win-64/repodata.json (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))

我花了一个多小时来处理它,因为乍一看问题出在Miniconda安装不正确还是网络上。 一些公司用户实际上阻止了此资源,但是在家中的用户却出现了问题。 重新安装Miniconda没有帮助。
结果,事实证明此错误意味着conda.exe
找不到openssl.exe
文件。 结果,应用了以下解决方案:
创建了文件夹C:\Dev\openssl
。
在文件夹C:\Dev\Miniconda3\pkgs
找到了一个以openssl
开头的文件夹。 例如, openssl-1.1.1a-he774522_0
。 如果有多个文件夹,请选择名称中具有较大数字的文件夹。
在找到的文件夹中,查找openssl.exe
文件,并将openssl.exe
以及openssl.exe
所有文件和文件夹复制到C:\Dev\openssl
。

在Windows资源管理器中,转到“此计算机”(列出了计算机上的所有磁盘)。 在一个自由的地方,右键单击上下文菜单,然后选择最底部的“属性”项。

在打开的窗口中,找到“高级系统设置”:

在“高级”选项卡上,找到“环境变量”按钮:

对于Windows 7和8:在“用户的环境变量”部分中,双击Path
变量。 如果该行的末尾没有分号,则将其放在该行的末尾并添加:
C:\Dev\openssl;

对于Windows 10:在“用户的环境变量”部分中,双击Path
变量。 结果,将出现以下窗口:

单击“创建”按钮,然后粘贴路径C:\Dev\openssl
。
关闭并再次打开命令提示符。 现在一切正常。 如果突然无法正常运行,则您需要搜索错误或联系论坛。
虚拟环境激活
虚拟环境的创建完成后,该窗口将如下所示:

创建虚拟环境后,通过pip
安装软件包。 首先,您需要激活虚拟环境。 为此,请在命令窗口中输入:
C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\activate
如此一来,您应该获得以下内容:

该行开头的单词(base)
表示我们已进入所需的虚拟环境。
在虚拟环境中安装Python软件包
现在您可以安装软件包*:
pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab

参数--no-cache-dir
告诉pip
您不应缓存下载的软件包。 这将使我们不增加虚拟环境文件夹的大小。
*有一个英特尔开发的MKL库(数学内核库) (en) ,该库可以加快流行的Python库(特别是Numpy和Scipy)的大数据处理速度。 如果要安装使用MKL的Numpy和Scipy,则应使用 (en) intel-numpy
而不是numpy
和intel-scipy
而不是scipy
:
pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab
我设法仅在使用Python 3.6的虚拟环境中安装了intel-numpy
和intel-scipy
。 如果要在具有Python 3.7的环境中将Numpy和Scipy与MKL结合使用,必须使用以下命令:
conda install numpy scipy
如果您不确定要放什么,请仅使用numpy
和scipy
。
如果在通过pip
安装过程中遇到错误,请尝试通过conda
安装有问题的软件包。 一个例子:
conda install numpy scipy matplotlib jupyter jupyterlab
Python
, , . *:
conda.bat deactivate
* deactivate
, - , conda.bat deactivate
. conda deactivate
.
Jupyter
.bat
, Jupyter Matplotlib dist\config
, Jupyter Notebook Jupyter Lab.
Jupyter, IPython Matplotlib
Windows. , Jupyter Matplotlib , . C:\Dev\Jupyter\dist
setenv.bat
:
@echo off set conf_path=%~dp0\conf set JUPYTER_CONFIG_DIR=%conf_path%\jupyter set JUPYTER_DATA_DIR=%conf_path%\jupyter\data set JUPYTER_RUNTIME_DIR=%conf_path%\jupyter\data\runtime set IPYTHONDIR=%conf_path%\ipython set MPLCONFIGDIR=%conf_path%\matplotlib REM Matplotlib search FFMPEG in PATH variable only! set PATH=%~dp0\apps\ffmpeg\bin;%PATH%
, .
@echo off
, .
set
. %~dp0
setenv.bat
. , =
.
Jupyter:
JUPYTER_CONFIG_DIR
— Jupyter ( (en) ),JUPYTER_DATA_DIR
— ( ( kernel
) Jupyter) ( (en) ),JUPYTER_RUNTIME_DIR
— Jupyter ( runtime files
) ( (en) ),IPYTHONDIR
— IPython ( (en) ),MPLCONFIGDIR
— , Matplotlib ( (en) ).
Matplotlib, FFMPEG (ru) . (en) zip FFMPEG, C:\Dev\Jupyter\dist\apps\ffmpeg
.
, REM
— . Matplotlib - FFMPEG %PATH%
. FFMPEG %PATH
, , FFMPEG, dist\apps
.
Jupyter
C:\Dev\Jupyter\dist
run_jupyter_notebook.bat
:
@echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-notebook.exe --notebook-dir=%1
, C:\Dev\Jupyter\dist
run_jupyter_lab.bat
:
@echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-lab.exe --notebook-dir=%1
setenv.bat
, .. , Jupyte Notebook Jupyter Lab , .
, D:\my-projects
, Jupyter Notebook Lab. run_jupyter_notebook.bat
run_jupyter_lab.bat
. « ». — Jupyter !

, , . , Jupyter Notebook Lab . : !
Jupyter Notebook ( 2). . . , ( !):
jupyter nbextension enable <nbextension require path>
, . :
C:\Dev\Jupyter\dist\setenv.bat C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\jupyter.exe nbextension enable <nbextension require path>
, C:\Dev\Jupyter\dist
enable_extension.bat
:
@echo off REM Enable extension in Jupyter Notebook. REM Example: REM enable_extension.bat widgetsnbextension call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-nbextension.exe enable %1
:
C:\Dev\Jupyter\dist\enable_extension.bat <nbextension require path>
jupyter
, C:\Dev\Jupyter\dist
jupyter.bat
:
@echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
IPython
.
结论
1 . Jupyter , . run_jupyter_notebook.bat
run_jupyter_lab.bat
, », .
2 Jupyter Notebook, Jupyter Lab Matplotlib. Jupyter Notebook Jupyter Lab, , , « ».
, , :
: https://vk.me/sindzicat
Telegram: https://t.me/sindzicat
E-mail: sh.andr.gen@yandex.ru