Ubuntu系统下Python虚拟环境中模块安装的最佳实践咨询
Ubuntu下虚拟环境中安装Python模块的最佳实践
首先直接给你明确结论:一定要激活虚拟环境后再执行pip安装命令,这是Python开发中避免依赖混乱的核心最佳实践,尤其是在Ubuntu这类系统自带Python(且系统工具严重依赖它)的环境里。
两种命令的差异详解
直接执行
pip3 install modulename
如果没激活任何虚拟环境,这个命令会把模块安装到Ubuntu系统全局的Python3环境中。这是非常不推荐的操作:一来会污染系统自带的Python依赖,可能导致系统工具(比如apt相关脚本)因为版本冲突出错;二来所有项目都会共享这些全局包,一旦不同项目需要同一包的不同版本,就会出现依赖冲突。错误写法
workon cv pip3 install modulename& 正确激活后安装workon是virtualenvwrapper工具里用来激活虚拟环境的命令,它后面只能接虚拟环境名称,不能直接跟pip命令。正确的做法是分两步:- 激活虚拟环境:
workon cv
激活成功后,你的终端提示符会变成(cv) username@hostname:~$,这就说明当前终端已经切换到cv虚拟环境的上下文了。 - 安装模块:
pip3 install modulename
此时的pip3是虚拟环境内部的包管理器,安装的模块只会存在于cv环境的site-packages目录下,完全隔离于系统环境和其他虚拟环境,不会造成任何外部影响。
如果你想用一行命令完成,应该写成:
workon cv && pip3 install modulename,&&表示只有前面的激活命令成功执行后,才会运行后面的pip安装命令。- 激活虚拟环境:
额外小贴士
- 激活虚拟环境后,其实直接用
pip install modulename也可以,因为此时pip已经指向虚拟环境内的Python对应的包管理器,和pip3效果一致。 - 每次开发你的OpenCV项目前,记得先激活
cv虚拟环境,这样你运行的Python代码才会使用环境里安装的依赖包。
内容的提问来源于stack exchange,提问作者smcs
相关产品推荐
相关产品推荐

