如何获取没有 pip 的生产环境所需的 python 库/包?

Posted

技术标签:

【中文标题】如何获取没有 pip 的生产环境所需的 python 库/包?【英文标题】:How to get the python libraries/packages required to a production environment which doesn't have pip? 【发布时间】:2022-01-05 23:26:40 【问题描述】:

我已经创建了一个 Python 应用程序,现在我需要将它部署到 UAT 和无法访问 pip 库的生产环境(该环境无法访问互联网)。

我被告知将所有库放在一个文件夹 python-lib 中。我应该将anaconda3\lib\site-packages\ 中的所有内容复制到文件夹中吗?但是,它有几百兆字节。是否可以复制我的应用程序所需的库?

【问题讨论】:

有人告诉我需要将我使用的所有库都包含在文件夹 python-lib 中。 pip 不可用。 目标机器上是否还有 anaconda/miniconda? 【参考方案1】:

我要做的是在本地创建一个虚拟环境并像这样安装它所需的包:

$ python3 -m venv prod_env
$ source prod_env/bin/activate
$ pip install <package_name>

如果文件夹太大,您可以随时在 UAT/Prod 盒子上压缩和解压缩。

在您的应用程序依赖项的虚拟环境中安装软件包后,使用 scp 或您通常使用的任何方法将 prod_env 文件夹移动到 prod/UAT 环境。

文件夹移动到环境后,您需要进入bin 文件夹并编辑activate 脚本。您需要将VIRTUAL_ENV 变量编辑为虚拟环境在您的产品/UAT 框上的路径。

完成后,您应该能够正常激活虚拟环境:

$ source /path/to/prod_env/bin/activate

【讨论】:

【参考方案2】:

使用pip -t

mkdir libs
python -m pip -r requirements.txt -t libs

然后将路径添加到PYTHONPATH。现在确定模块/脚本是否有任何默认 PYTHONPATH。

【讨论】:

以上是关于如何获取没有 pip 的生产环境所需的 python 库/包?的主要内容,如果未能解决你的问题,请参考以下文章

maven (profiles)装载不同环境所需的配置文件

如何在Python 3.6上安装PIP?

如何下载安装SCCM服务器时所需的必须软件?

如何要求用户安装python中运行程序所需的需求?

从 setup.py 运行所需的 .msi 安装程序,以便使用 pip install 运行

安装软件包时如何放宽所需的版本