CentOS7.2下pip3已安装virtualenv但无法找到该命令求助
这种情况我在CentOS环境里碰到过好多次,核心原因是pip3安装的virtualenv可执行文件所在目录没被加入系统的PATH环境变量,导致bash无法定位到这个命令。下面给你几个实用的解决办法:
方法1:直接使用完整路径执行
先确认virtualenv的具体位置,执行以下命令查看Python3的安装路径:
pip3 show virtualenv
从输出的Location字段可以看到包的安装目录,比如你的是/usr/local/Python3/lib/python3.5/site-packages,那么virtualenv的可执行文件肯定在同级的bin目录下,也就是/usr/local/Python3/bin/virtualenv。
直接用完整路径运行命令即可:
/usr/local/Python3/bin/virtualenv --no-site-packages venv
方法2:临时将Python3的bin目录加入PATH
如果不想每次都打长路径,可以临时把Python3的bin目录加入当前终端的PATH:
export PATH=/usr/local/Python3/bin:$PATH
执行完这条命令后,再直接运行virtualenv --no-site-packages venv就能正常使用了。不过注意,这种方式只在当前终端会话生效,重启终端后需要重新执行。
方法3:永久将Python3的bin目录加入PATH(推荐)
想要一劳永逸,就把Python3的bin目录永久加入系统PATH:
- 编辑用户的bash配置文件(仅对当前用户生效):
vi ~/.bashrc
- 在文件末尾添加一行:
export PATH=/usr/local/Python3/bin:$PATH
- 保存退出后,执行以下命令让配置立即生效:
source ~/.bashrc
之后不管重启终端还是重新登录,都能直接使用virtualenv命令了。
方法4:用Python3的-m参数运行(无需修改PATH)
如果只是临时使用,也可以直接通过Python3的模块方式调用virtualenv,这种方式不受PATH影响:
python3 -m virtualenv --no-site-packages venv
补充说明
CentOS7默认自带的是Python2,它的可执行文件在/usr/bin目录(已加入默认PATH),而你手动安装的Python3位于/usr/local/Python3,其bin目录不在系统默认的PATH中。pip3安装的所有命令行工具(包括virtualenv)都会放在这个bin目录下,所以bash默认找不到它们,把这个目录加入PATH就能解决问题。
内容的提问来源于stack exchange,提问作者qg_java_17137

