海外VPS Linux下Python虚拟环境搭建(virtualenv与conda)
在海外VPS的Linux系统开发Python项目,虚拟环境是绕不开的基础操作。不同项目依赖版本冲突的问题太常见了——比如项目A要Flask 1.0,项目B要Flask 2.0,共用系统环境根本没法满足。这时候用虚拟环境隔离依赖,开发能顺畅不少。今天就聊聊两种主流工具:轻量的virtualenv和功能更全的conda。
用virtualenv搭轻量虚拟环境
没虚拟环境的麻烦我深有体会。之前同时做两个Web项目,一个要Django 2.2,另一个要Django 3.2,装新的版本旧项目就报错,删旧的又影响开发进度,折腾了半天才找到虚拟环境这个解决办法。
virtualenv是Python社区最常用的虚拟环境工具,原理很简单:给每个项目单独复制一份Python解释器和依赖库,相当于给每个项目配“专属厨房”,炒菜(装库)时互不干扰。操作步骤也不复杂:
1. 先装工具:终端输入`pip install virtualenv`,等几秒钟就装好了;
2. 创建环境:假设项目叫my_blog,命令是`virtualenv my_blog_env`,会生成一个同名文件夹;
3. 激活环境:`cd my_blog_env`进去,执行`source bin/activate`,终端提示符会多出`(my_blog_env)`,说明进入“专属厨房”了;
4. 装依赖:这时候用`pip install flask==2.0`,包就只装在当前环境里;
5. 退出环境:开发完输入`deactivate`,提示符恢复原样,回到系统环境。
这套流程适合小项目,比如个人博客、简单API接口,轻量快捷没负担。
用conda管复杂项目环境
要是遇到数据科学、机器学习这类复杂项目,光隔离依赖还不够——可能同时需要Python 3.7和3.9两个版本,还要装CUDA、R语言包之类的非Python依赖,这时候conda更顺手。
conda不仅是环境管理工具,还是跨语言的包管理器,能同时管Python、R、C++的库。我之前做图像识别项目,既要Python的TensorFlow,又要C++的OpenCV,用conda一个命令就能全装上,比分开装省心多了。
具体操作分六步:
1. 装conda:去Anaconda官网下对应Linux版本的安装包,按提示一步步装就行;
2. 创建环境:比如要Python 3.8的环境,命令是`conda create -n cv_project python=3.8`(cv_project是环境名);
3. 激活环境:`conda activate cv_project`,提示符会显示环境名;
4. 装依赖:可以用conda装`conda install numpy=1.21 pandas=1.3`,也能用pip补漏`pip install scikit-learn`;
5. 退出环境:`conda deactivate`切回系统环境;
6. 删环境:不用了就`conda remove -n cv_project --all`,彻底清掉不占空间。
conda的优势在复杂场景更明显,尤其是需要多版本Python、跨语言依赖的项目,管理起来比virtualenv更高效。
选工具时不用纠结,简单项目(比如个人小应用)用virtualenv,轻量省资源;复杂项目(如数据科学、机器学习)选conda,功能全面能打。在海外VPS的Linux系统里,这两个工具能解决90%以上的环境管理问题。合理用起来,开发时再也不用为依赖冲突头疼,效率能提一大截。