Mac寫python

Mac寫python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

随着Numpy、Scipy、Matplotlib和Pandas等众多程序库的开发,python在数据分析、数据挖掘、海量数据的科学计算等领域的应用越来越广泛,也成为如今最受追捧的处理数据的编程语言。这里主要讲解mac下安装python,最后介绍第三方python IDE -PyCharm。

一、(小白版)首先mac是自带python的...

你要做的只是:

1.打开终端...太多太多种方法了(快捷键shift+command+U打开“实用工具”找到终端 or 先打开launchpad,在搜索中输入“终端”or 按command+space进入search界面搜索终端Terminal)


2.输入“python”回车后即进入解释器,例如打印“hello world!”。


3.问题:Mac系统自带的python环境默认启动路径在:/usr/bin。这里可以方便地执行python脚本,但对于python开发肯定是不够的,你还需要安装Anaconda

那么Anaconda是什么?为什么能运行python了还要安装Anaconda?

二、(升级版)再安装Anaconda

1.什么是Anaconda?

    简单来说,Anaconda是包管理器和环境管理器,它附带了conda、python等多个科学数据模块,支持科学计算和分析数据;另外当遇到不同的项目需要使用不同版本的python,或者不同版本的包的时候,conda可以为不同的项目建立不同的运行环境,因此也称为环境管理器;Anaconda还包含了两种不同风格的编辑器Jupyter和Spyder。

2.Mac下如何安装Anaconda?

(1)直接到官网下载OS X下对应版本的Anaconda,这里选择Python2.7对应的安装包。

(2)打开终端,输入下面的命令,执行批处理指令:

$ bash~ /Downloads/Anaconda2-4.0.0-MacOSX-x86_64.sh

接下来就是傻瓜安装,enter,yes...

(3)安装成功后,执行下面的命令,将Anaconda的位置加载到环境变量PATH的开头,使得以后用python时优先使用Anaconda版。

$ export PATH="$HOME/anaconda2/bin:$PATH"

(4)最后就可以直接输入python,检查Anaconda版的python安装是否成功。

三、(前面都是废话,有IDE干嘛不用)安装一个PyCharm就OK

1.PyCharm是一个多功能的集成开发环境,只需要在pycharm中创建python file就运行python,并且pycharm内置完备的功能,自动补全,代码提示,调试运行,代码的编辑、改正、优化,还能自动结合Git进行代码版本控制,当需要做一个大型项目时,用带有项目管理功能的PyCharm最方便。

2.PyCharm的安装也十分简单

直接进官网PyCharm: Python IDE for Professional Developers by JetBrains,点download


选macOS版本


将PyCharm拖到应用程序里面


启动PyCharm,接下来有一个激活码的问题,在网上看到了一个非常神奇的操作:

选择License Server激活,然后填入:http://artemis.my.to ,然后点Active激活即可。


最后还有一个小小的问题,最后一步是否安装Vim,Markdown,Bash等编辑器插件,,建议根据个人代码习惯安排,R语言插件可以装一下,也可以什么不安,干净又快。

其实其他的答案都说得差不多了,macOS 上基本就这几个选择: VSCode, Sublime Text, Atom, PyCharm. 这四个里除了 Atom 外,都是靠谱的选择。

不过从问题内容看,题主多半是刚入门编程的初学者,有鉴于此我强烈推荐从 VSCode 入手。

Python 作为一个轻量的脚本语言,对 IDE 的依赖其实不大,随便一个文本编辑器就能把活做好。Sublime Text 是这几个里头最轻量的编辑器,启动速度显著快于其他三项,本来当属最佳选择。但我理解新手有种按耐不住的想要“工欲善其事,必先利其器”的折腾欲,我也是从那阶段过来的,所以与其劝你别折腾但你不会听,不如帮你减少折腾的成本。

Sublime Text 的折腾成本略高。它的插件系统是社区方案,各路插件良莠不齐,配置方法也五花八门。虽说可定制性很高,如果你是编程老鸟,那也是称手兵器一件,但对于新手来说,要花费不少时间精力来研究怎么配置,我认为在入门阶段是不划算的事情,心烦容易弃坑。

反观 VSCode,新手友好度简直爆表。无插件默认状态下就已经是个很好用的编辑器了,想折腾?编辑器内嵌官方插件市场,需要什么插件一个搜索就出来,看评论星级和下载数量选择,不怕挑花眼!主流插件的文档那个完善度,跟微软帮他们写的似的!配置方法基本统一用 JSON,可配置项还有代码提示,不用查文档都能配,简直感人!

咳…有点跑题了哈~声明微软粑粑没给我打广告费,就是诚心推荐好东西而已。

总评一下。Sublime 赢在轻量和启动速度上,但新手友好度不够高。Atom 跟 VSCode 比就只有被吊打的份,虽说是先行者,但耐不住 M$ 爸爸肯砸钱为开源做贡献啊…打不过。PyCharm 在高级功能上肯定是能碾压 VSCode,但作为一个对新手极不友好的 IDE,除非你是靠写 Python 吃饭的,否则完全没有必要用 PyCharm,启动慢占资源,太重太难学。

最后让我再夸它两句,VSCode 是我见过综合素质权衡得最好的编辑器了,没有之一。开源免费不说了,整个设计实现都非常用心,更新迭代频次高,每次升级的 Release Note 写的那叫一个下功夫,我都愿意仔细看看它更了什么新功能,你就说这年头哪家软件能有这待遇?真心是个精品软件,微软这两年在开源界赚回来的名声 VSCode 绝对是一大功臣。

这学期选修的关于内容安全和数据挖掘的课程,于是作者本人终于开始接触python(大三才开始学python的我错了,不要打我)

关于爬虫

百度官方解释:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

关于python的安装

ps:mac系统自带python,不过版本不超过3,所以建议重新安装

检查python版本的方法:

打开终端,直接输入python,就会显示python的版本

安装python的方法:

mac版指路:

win版指路:

如何运行python

由于作者本人用的是mac系统,这里就说一下如何在mac OX中运行python(至于如何在win下我就不多说了,目前win对我来说就只有word和微软家的vs还可以用一用)主要有以下三种方法:

(1)安装一个sublime,方便快捷

(2)使用mac自带的终端

(3)安装一个PyCharm

方法一指路:

如何安装sublime:

sublime下载网址:A sophisticated text editor for code, markup and prose

选择适合你的版本下载

Mac寫python

如何破解:

sublime text 安装以及配置 | Celia‘s blog

如何配置python3:

打开sublime text,工具——》编译系统——〉编译新系统

使用Sublime Text 开发Python如何配置环境(mac)

编译:command+B

方法二:

打开终端,利用cd找到py文件所在位置,然后输入python3 文件名称+回车

方法三指路:

如何安装PyCharm:

直接给下载网址别的就不废话了:PyCharm: Python IDE for Professional Developers by JetBrains

如何破解PyCharm:

这个网上一堆,自己动手丰衣足食。

Ps:虽然安装了PyCharm,但是目前我还没有怎么用过,感觉有点重量级,对于目前我觉得Mac的终端就很好用。。。。

如何用python进行简单的页面抓取

事例:

url:

http://www.phei.com.cn

此链接为电子工业出版社的官方链接

任务:

对指定的链接进行数据抓取

提前准备:

(1)安装pip:打开终端,输入:sudo apt - get install python3 - pip

(2)安装requests:打开终端,输入:sudo pip3 install requests

代码:

import requests
urls_dict = {
	'电子工业出版社':'http://www.phei.com.cn',
	'在线资源':'http://www.phei.com.cn/module/zygl/zxzyindex.jsp',
	'xyz':'www.phei.com.cn',
	'网上书店1':
	'http://www.phei.com.cn/module/goods/wssd_index.jsp',
	'网上书店2':
	'http://www.phei.com.cn/module/goods/wssd_index.jsp'
}

urls_lst = [
    ('电子工业出版社','http://www.phei.com.cn/'),
    ('在线资源','http://www.phei.com.cn/module/zygl/.jsp'),
    ('xyz','www.phei.com.cn'),
    ('网上书店1',
    	'http://www.phei.com.cn/module/goods/wssd_index.jsp'),
	('网上书店2',
		'http://www.phei.com.cn/module/goods/wssd_index.jsp'),
]

crawled_urls_for_dict = set()
for ind,name in enumerate(urls_dict.keys()):
	name_url = urls_dict[name]
	if name_url in crawled_urls_for_dict:
		print(ind,name,'已经抓取过了')
	else:
		try:	
			resp = requests.get(name_url)
		except Exception as e:
			print(ind,name,':',str(e)[0:50])
			continue
		content = resp.text
		crawled_urls_for_dict.add(name_url)
		with open('bydict_'+name+'.html','w',encoding='utf8') as f:
			f.write(content)
			print("抓取完成:{}{},内容长度为{}".format(ind,name,len(content)))
for u in crawled_urls_for_dict:
	print(u)

print('-'*60)

crawled_urls_for_list = set()
for ind,tup in enumerate(urls_lst):
	name = tup[0]
	name_url = tup[1]
	if name_url in crawled_urls_for_list:
		print(ind,name,"已经抓取过了")
	else:
		try:
			resp = requests.get(name_url)
		except Exception as e:
			print(ind,name,':',str(e)[0:50])
			continue
		content = resp.text
		crawled_urls_for_list.add(name_url)
		with open('bylist_'+name+'.html','w',encoding='utf8') as f:
			f.write(content)
			print("抓去完成:{}{},内容长度为{}".format(ind,name,len(content)))
for u in crawled_urls_for_list:
	print(u)
	

分析:

这段代码演示了两种抓取方式:

(1)将待抓取的目标信息组织成字典,名为urls_dict

(2)将待抓取的目标信息组织成列表,名为urls_lst

我们在分别看一下具体的方式:

(1)使用键来表示目标的名字,相应的值表示抓取目标的网址。

字典中包含5个目标信息,其中“网上书店1”和“网上书店2”的网址信息是相同的;

键为“xyz”的项是特意加上去的,注意网址和其他网址的区别,即没有“http://”作为前缀,对于requests库来说事无效的网址,抓取时抛出异常。这也是引入该项的目的,可演示抓取时异常处理的情况。

(2)列表的元素事元组,使用元组来表示目标信息。每个元组包含两个元素:

  • 第一个元素是抓取目标的名称
  • 第二个元素是抓取目标的网址
  • 列表中共有5个元组,表示的内容信息与urls_dict中的完全一样

使用两种方式组织信息的主要目的是演示使用for循环结构对不同数据类型的遍历方法,在实际过程中使用列表的情况会更多一些。

结果:

Mac寫python
Mac寫python

参考:

百度词条:网络爬虫

百度词条:python

参考书籍:python数据抓取技术与实践(电子信息出版社)

封面图:by 伊吹五月