linux中升级pipi命令提示WARNING: Running pip as the ‘root‘ user can result in broken permissions and conflic
原因:
在Linux系统中,当你尝试以root用户身份运行pip
命令,可能会导致权限问题,以及可能与系统的包管理器(如apt、yum等)发生冲突。为了避免这些问题,建议使用虚拟环境(virtual environment)来管理Python包。所以有这个警告
为什么要使用虚拟环境?
- 隔离依赖:每个项目可以有自己的依赖包和版本,避免不同项目之间的依赖冲突。
- 权限管理:不需要使用root权限来安装包,提高了系统的安全性。
- 易于管理:可以轻松地创建、删除和复制虚拟环境。
使用虚拟环境前:
首先需要centos系统中安装好python,若还没有的话可参考
CentOS8环境中 下载安装python(附下载地址)_centos8安装python-CSDN博客
如何创建和使用虚拟环境?
1、安装Python的venv模块(通常Python 3.3及以上版本自带):
检查python版本(python3是安装python时创建的软链接的名称可能不一样)
python3 --version
安装:对于Debian/Ubuntu系统
sudo apt-get install python3-venv
安装:# 对于CentOS/RHEL系统
sudo yum install python3-venv
2.创建虚拟环境
创建一个名叫myenv的虚拟环境,会自动生成一个文件夹,因此在创建时,先切换到自己的第三方包安装目录下。
如我的pip的目录在这里
那我就可以将虚拟环境文件的目录放在/usr/local/bin/python3/lib/下
cd /usr/local/bin/python3/lib/
进入该目录后,然后运行以下代码创建虚拟环境
python3 -m venv myenv
3.激活虚拟环境:
然后激活虚拟环境
在Linux或macOS上:
source myenv/bin/activate
激活后,你会看到命令行提示符前出现了虚拟环境的名称,表明你现在处于该虚拟环境中。
4.在虚拟环境中安装包:
然后就可以在虚拟环境中安装第三方包了,可以用一个虚拟环境单独针对一个项目,会更清晰
再次更新pip命令:
pip install --upgrade pip
安装第三方包命令:
pip install 包名
如果需要安装特定版本的包,可以在包名后加上版本号,如
pip install requests==2.26.0
5.安装成功后验证:
在虚拟环境中输入python
然后再导入刚刚安装的第三方包,没有报错即为安装成功
6.退出虚拟环境:
deactivate
完成工作后,可以通过运行deactivate
命令来退出虚拟环境。这将使你回到系统默认的Python环境中。 需要注意的是,由于虚拟环境是隔离的,所以在虚拟环境中安装的包不会影响到系统默认的Python环境或其他虚拟环境。这有助于保持项目之间的依赖独立,使得代码更易于管理和部署。
当运行python文件时,如何指定使用哪个虚拟环境?
方法一:
手动激活虚拟环境然后运行Python文件:
# 激活对应的python虚拟环境
source /path/to/your/virtualenv/bin/activate
# 使用python命令,运行你的Python文件的路径
python /usr/local/Python-3.12.1/project/test_01/run.py
# 完成工作后,记得退出虚拟环境
deactivate
这是最直接的方法,但稍微有些繁琐。你需要先打开一个新的shell会话,激活虚拟环境,然后运行Python文件。
方法二:
使用虚拟环境中的Python解释器路径直接运行:
直接指定虚拟环境中Python解释器的完整路径来运行Python文件。这样就不需要先激活虚拟环境
# 虚拟环境的路径/bin/python3 /项目的运行文件路径
/usr/local/bin/python3/lib/myenv/bin/python3 /usr/local/Python-3.12.1/porject/test_01/run.py
这种方法的好处是你不需要先激活虚拟环境,但它要求你知道虚拟环境中Python解释器的确切路径。
方法三:
在脚本中指定解释器:
如果你的Python脚本文件有shebang行(通常是文件的第一行,如#!/usr/bin/env python3
),你可以将其更改为指向虚拟环境中的Python解释器。例如:
#!/path/to/your/virtualenv/bin/python
# 下面是你的Python代码...
然后,你可以像运行任何其他shell脚本一样运行这个Python文件:
./your_script.py
不过,请注意,这种方法要求脚本具有执行权限(可以通过chmod +x your_script.py
来设置)。
通常,对于一次性命令或脚本,使用第二种方法(直接指定虚拟环境中的Python解释器路径)是最方便的。如果你经常需要在特定的虚拟环境中运行脚本,考虑在脚本中使用shebang行或设置执行权限可能更合适。