为什么你的python版本一团糟?因为少了这个操作
前言
Python 的版本问题一直是个广被吐槽的黑点。以至于有人调侃说:
Python 是世界上最好的两种语言!
在这里我要说明下,对于初学者来说,版本间的语法差异其实并不大。现在刚开始学 Python 的人,放心大胆地用最新版本即可。业内所诟病的,主要是针对代码上的不兼容。
但平心而论,版本间的兼容问题并不是 Python 所独有。且就算 Python 只有一个版本,第三方库的版本一样会让人抓狂。
比如说,你之前在电脑上用 Python 写了一个网站,使用了 django 框架,版本是 1.11。过了半年,你要开发一个新网站,这时候 django 已经发展到了 2.0 版本(现在django最新版本已经4.2了),你是用还是不用?更新了版本,电脑上的老网站代码就无法执行了。
或者,你安装并使用了某个模块 A 的最新版本。然后另一个项目用到的模块 B,B 的代码却依赖于模块 A 较早的版本。这种情况下,你甚至可能都无法成功安装模块 B。
这些版本的冲突在开发中十分常见,而 Python 2 和 3 的版本差异又加剧了这一问题。
【----帮助Python学习,以下所有学习资料文末免费领!----】
对此,早已有了成熟的解决方案:
虚拟环境
Python 开发中所谓的虚拟环境,就是为 Python 版本及第三方库创建独立的开发环境,使不同项目之间互不干扰。借助于虚拟环境,我们可以在同一台电脑上构建出项目 A 在基于 Python 2 的环境中运行,而项目 B 可以在基于 Python 3 的环境中运行。
虚拟环境需要通过一些工具创建,常见的几种:
1, virtualenv。这是 Python 最为常用的虚拟环境工具,简单有效,我自己就用它。本文稍后部分会介绍下基本的安装和使用。网上也有相当多的使用教程。
virtualenv 的一个局限是无法统一管理你电脑上的所有虚拟环境,因此环境多了之后,可能会遗漏,或造成冗余。对此,有一个扩展工具 virtualenvwrapper,能帮你统一管理各个环境。
2, venv。它的实现很大程度基于 virtualenv,使用方法也很类似。而 Python 现已内置了 venv。
3, conda。这个工具相当于 pip + virtualenv + virtualenvwrapper,它不仅能创建和管理虚拟环境,本身还是一个包管理器,可以下载安装第三方库。功能完善,使用也不复杂。著名的数据分析开发包 anaconda 里就默认使用 conda 作为环境和模块管理工具。
接下来我们简要介绍下:
virtualenv 的使用
安装
在系统命令行通过 pip 安装即可:
pip install virtualenv
如果你的命令行无法执行 python、pip 及后续的 virtualenv 命令,请检查你环境变量里的 PATH 路径。(还不熟悉的请在公众号回复关键字 安装)
创建
进入到合适的目录下(一般是项目根目录,但不建议加入 git 仓库里提交),通过 virtualenv
命令创建一个名为 MY_ENV
的环境(这个名字可自定义):
virtualenv MY_ENV
没有报错的话,会成功创建目录 MY_ENV,其中有一些目录和文件,这就是我们的虚拟环境所在了。
激活
使用虚拟环境前,需要“激活”环境:
windows
MY_ENV\Scripts\activate
linux
source MY_ENV/bin/activate
路径根据你所在位置会有所不同,也可以使用完整路径。
激活环境之后,命令行前面会用括号标识出你所在的环境。这时候再通过 pip 安装第三方模块,就不会影响到系统本身的 Python 环境。
关闭
当不需要环境时,可以通过 deactivate
命令关闭。当然,直接关掉命令行窗口也没毛病。
指定 Python
虚拟环境的创建,默认是使用 virtualenv 所在的那个 Python 版本。如果你电脑上有多个 Python,则可以指定环境的 Python 版本,例如:
virtualenv -p C:\python27\python.exe ENV27
虚拟环境的本质
为什么简单几行命令,就可以实现 Python 环境的分离?本质上靠的还是环境变量里的 PATH 路径。
PATH 的作用,就是当你执行一个命令时,系统要知道去哪里找这个命令。PATH 里有多个路径,就按顺序从前到后依次查找。执行 python、pip 等命令时,都是按照这个方式进行。
通过 echo
命令可以查看路径:
windows
linux
当版本出现混乱时,往往就是 PATH 中有多个路径,不同路径中有含有相同的命令,以至于执行了并非你预期的那个版本中的命令。比如你的 python 命令是在 python27 目录下,而 pip 执行的却是 python36/Scripts 里的,然后就发生了“明明安装成功了,程序里却找不到”的情况。
【----帮助Python学习,以下所有学习资料文末免费领!----】
而当激活一个虚拟环境时,就相当于在 PATH 的开头增加了我们创建的目录,使用这个目录里的 Python 及相关库。安装新的库也是装在新建的这个目录之下。从而避免与其他版本发生干扰。
如果你不清楚你所用的命令究竟是哪里的,可以在命令行中使用 where/which
命令查看:
PyCharm 里的虚拟环境
可能很多同学还不习惯用命令行,而是完全使用 IDE 来进行配置。那么最后我特别提一下 PyCharm 的情况。
新版本的 PyCharm 默认会在创建项目时新建一个虚拟环境,因此不了解这个操作的同学会疑惑,命令行里用 pip 装好的模块为什么到 PyCharm 里就用不了了。简单的解决方法,就是从 PyCharm 的设置面板里安装库。
关于Python的自学
最后给大家介绍一个完整的python学习路线,内容是从入门到进阶,既有思维导图,也有经典书籍,还有配套视频,给那些想学习python以及数据分析的小伙伴们一点帮助!
一、Python入门
下面这些内容是Python各个应用方向都必备的基础知识,想做爬虫、数据分析或者人工智能,都得先学会他们。任何高大上的东西,都是建立在原始的基础之上。打好基础,未来的路会走得更稳重。
包含:
计算机基础
python基础
Python入门视频600集:
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
二、Python爬虫
爬虫作为一个热门的方向,不管是在自己兼职还是当成辅助技能提高工作效率,都是很不错的选择。
通过爬虫技术可以将相关的内容收集起来,分析删选后得到我们真正需要的信息。
这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等,都能够借助爬虫技术获取更精准有效的信息加以利用。
Python爬虫视频资料
三、数据分析
清华大学经管学院发布的《中国经济的数字化转型:人才与就业》报告显示,2025年,数据分析人才缺口预计将达230万。
这么大的人才缺口,数据分析俨然是一片广阔的蓝海!起薪10K真的是家常便饭。
四、数据库与ETL数仓
企业需要定期将冷数据从业务数据库中转移出来存储到一个专门存放历史数据的仓库里面,各部门可以根据自身业务特性对外提供统一的数据服务,这个仓库就是数据仓库。
传统的数据仓库集成处理架构是ETL,利用ETL平台的能力,E=从源数据库抽取数据,L=将数据清洗(不符合规则的数据)、转化(对表按照业务需求进行不同维度、不同颗粒度、不同业务规则计算进行统计),T=将加工好的表以增量、全量、不同时间加载到数据仓库。
五、机器学习
机器学习就是对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。
机器学习的核心是“使用算法解析数据,从中学习,然后对新数据做出决定或预测”。也就是说计算机利用以获取的数据得出某一模型,然后利用此模型进行预测的一种方法,这个过程跟人的学习过程有些类似,比如人获取一定的经验,可以对新问题进行预测。
机器学习资料:
六、Python高级进阶
从基础的语法内容,到非常多深入的进阶知识点,了解编程语言设计,学完这里基本就了解了python入门到进阶的所有的知识点。
到这就基本就可以达到企业的用人要求了,如果大家还不知道去去哪找面试资料和简历模板,我这里也为大家整理了一份,真的可以说是保姆及的系统学习路线了。
但学习编程并不是一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。
一蹴而就,而是需要长期的坚持和训练。整理这份学习路线,是希望和大家共同进步,我自己也能去回顾一些技术点。不管是编程新手,还是需要进阶的有一定经验的程序员,我相信都可以从中有所收获。
资料领取
这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以点击下方CSDN官方认证微信卡片免费领取 ↓↓↓【保证100%免费】
好文推荐
了解python的前景:https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835
了解python的兼职副业:https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603
相关文章
- python re.compile() 详解——Python正则表达式「建议收藏」
- Python常用代码_python画图代码大全
- Python之文件操作大全
- 使用python的Django库开发一个简单的数据可视化网站(三)- 使用Django连接数据库mysql
- python安装不了whl文件_Python安装whl文件过程图解
- Python入门系列(十一)一篇搞定python操作MySQL数据库
- gyp ERR! stack Error: Can't find Python executable 'python'
- OpenCV-Python学习(15)—— OpenCV 鼠标操作和响应(cv.setMouseCallback)
- python isalpha函数用法_isalpha函数「建议收藏」
- python抛出异常写法_零基础学 Python(32):如何抛出和捕获异常?「建议收藏」
- python定义函数求和_Python定义函数实现累计求和操作
- python 和 django 学习资料收集(2020-4-25 更新)
- 软件测试|一文弄懂Python集合相关操作
- Python中的字符串操作总结(Python3.6.1版本)详解编程语言
- python readline()方法详解编程语言
- 学习Python精通SQL Server操作技巧(python操作sqlserver)
- MySQL与Python搭配,实现数据库操作。(mysql-python)
- Linux升级:升级Python到最新版本(linux升级python版本)
- 2019年5月编程语言排行榜:Python第四,运维必须加强学习!
- 如何在Linux中安装Python?(linux安装python)
- Linux 下 Python 升级:轻松完成升级操作(linux下升级python)
- Python文件操作实现代码
- python文件和路径操作函数小结
- python读写文件操作示例程序
- python连接mysql数据库示例(做增删改操作)
- Python字典(Dictionary)操作详解
- Python中实现对list做减法操作介绍