gpt4 book ai didi

python - 我应该以非 root 用户身份安装 Python 包还是设置虚拟环境以将它们安装在 Docker 容器内?

转载 作者:行者123 更新时间:2023-12-03 08:16:18 24 4
gpt4 key购买 nike

通过 Dockerfile 中的 pip 安装 Python 包时,如:

pip install --trusted-host pypi.python.org -r requirements.txt

requirements.txt,例如如:

python-dotenv>=0.15.0
psycopg2>=2.8.6
sqlalchemy>=1.3.22
numpy>=1.19.0
rasterio>=1.1.8
pandas>=1.1.5
geopandas>=0.8.1
matplotlib>=3.3.0
seaborn>=0.11.0

我最近看到了这个警告:

WARNING: Running pip as the 'root' user can result in broken permissions
and conflicting behavior with the system package manager.
It is recommended to use a virtual environment
instead: https://pip.pypa.io/warnings/venv

因此我的“天真”问题是:
像人们通常在本地计算机上所做的那样,设置虚拟环境/或以非 root 用户身份安装 Python 包(这是 Docker 中的默认设置)是否有意义?
目前我从来不关心这一 pip ,因为我位于一个 Docker 容器内,根据定义,该容器托管一个应用程序,所以我认为这些包全局安装是完全可以的。希望我不会破坏本地机器上的任何东西。

最佳答案

说实话?没关系。

在构建容器期间使用根用户通常是必要且预期的。来自 pip 的警告是“以 root 身份运行 pip 可能会搞砸您的操作系统程序所依赖的软件包” - 但您的容器中没有操作系统。

如果您在构建结束时或在 docker 运行期间使用权限较低的用户,以 root 身份安装软件包不会对您造成任何伤害。实际上,容器是一个单一进程(您的Python应用程序),它具有与根系统不同的文件系统 View ——非常像virtualenv试图实现的目标。

关于python - 我应该以非 root 用户身份安装 Python 包还是设置虚拟环境以将它们安装在 Docker 容器内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69240556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com