如何获取没有 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 库/包?的主要内容,如果未能解决你的问题,请参考以下文章