如何分发包含外部库的python3代码

问题描述 投票:0回答:1

[我在python3中编写了一个小脚本,该脚本使用numpy,matplotlib和linux计算机中pyCharm CE使用的其他库。

我使用pyCharm编码并创建了虚拟环境。由于依赖关系,该脚本仅在pyCharm内部有效。我的一个朋友想在Windows计算机中使用我的脚本。我不确定他是否已经安装了python。

如何在pyCharm外部运行脚本,或者如何激活pyCharm创建的虚拟环境来运行脚本?

我如何创建一个程序包或将脚本提供给我的朋友或其他任何人以自由使用它的东西?

谢谢

python-3.x deployment pycharm
1个回答
0
投票

一种要求您的朋友在其系统中安装python3.xpip的方法。同时,您创建一个requirements.txt,其中包含需要安装的库及其格式的版本。

dj-database-url==0.5.0
Django==2.2.5
pytz==2019.2
sqlparse==0.3.0
psycopg2>=2.7,<3.0

然后请您的朋友运行pip install -r <path to requirements.txt>。这将安装所有必需的库,并且如果没有基于OS的依赖项,则该项目应运行正常。

[在存在基于OS的依赖的较大项目的情况下,另一种方法是使用containerization工具,例如docker。容器化使您可以在其他计算机上运行项目,这些项目取决于计算机中可用/安装的各种程序包或环境。

例如:假设我创建了一个基于python的应用程序,该应用程序依赖于Debian计算机中的多个软件包。我可以使用docker image作为基础构建python3.x,并在image时间内在build中安装所需的软件包。这样做很简单。这样做之后,我可以将image推到docker hub,这是一个用于存储docker images的注册表。请注意,此处存储的images是公开可用的。如果您对此感到担心,则可以使用私有AWS ECR注册表来存储您的images。按下image后,任何有权使用image的人都可以拉出它并旋转containercontainerimage的实例,它可以运行image构建的应用程序/脚本/任何操作。为了能够启动containers,他们将需要在其计算机上安装docker

通过这种方式,您可以共享您的项目,并使其在任何人的计算机上运行,​​而不会带来任何麻烦。他们不需要在机器中安装docker以外的任何东西。与Virtual Machine不同,docker containers在您的机器上并不笨重。

[在使用docker的情况下,您可以以image为基础构建python3.x(与ISO映像类似)并安装所有必需的软件包,例如numpymatplotlib和其他库,然后复制项目运行到image并将其推送到docker hub或您选择的私有注册表所需的脚本。然后,您可以给您的朋友访问image。您的朋友将需要在他的机器上安装Docker for Windows,以便能够使用提供给他的图像旋转container。此容器将运行您的脚本,因为在构建映像本身时,它将在其中安装所有必需的依赖项。

有关Docker的更多信息:https://www.docker.com/

© www.soinside.com 2019 - 2024. All rights reserved.