欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

怎样用 Windows 入门Python?

程序员文章站 2022-03-24 09:10:46
...
配置不高

回复内容:

Python 对 Windows 相当友好啊,你们不要吓唬新人。去下载安装一个 ActivePython,能给 VC/C# 程序员当辅助工具了。再装一个 Ulipad 当开发工具,在windows上可以愉悦的使用Python。

不否认 Python 在 *nix 环境中的价值,但是 Python 与 windows 也是非常好的搭档。只有你需要学习 *nix 的知识时,才需要去了解如何在 *nix 中使用 Python。

当你对 Python 内置的交互环境有初步了解以后,可以安装一个 ipython 作为日常的 python 交互环境使用,这个 shell 更友好,而且随着你对 python 的深入了解,还会发现 ipython 有很多高级的功能可以提高你的生产力。

如果你会用 Emacs ,Emacs的Python插件使用起来非常便利。你可以尝试将 ipython 集成进去,形成一个很好的集成开发环境。 其实这个问题就是问 Python 如何入门,多加了 PC 两字,引出了诸多操作系统平台纠纷,其实大可不必。PC 者,Windows 可,Linux 可,Mac OS 也可,否则光 Linux 的诸多版本,就可以吵出知乎整整一个版面的内容来。Python 的版本,Linux 和 Mac 都是默认安装(具体 Python版本有区别),Windows 简单安装一下即可,后面的问题,其实就是怎么入门 Python 的问题了,至于 那个平台学习编程好,这又是知乎整整一个版面的讨论主题。
回到真正主题,说说我是怎么入门 Python 的吧,希望有借鉴意义。记得最早是找了一本 Learning Python,大概花了两天时间将 Python 的基本语法熟悉了一下(在接触 Python 之前,有N+年C 语言实际工作经验),然后就开始跟着 Udacity 的 Introduction to Computer Science一课一课的学习,链接如下:
udacity.com/course/cs10
记住,一定要做每课后面的习题,这个就如同在实际项目中的问题分析和排查,对于真正掌握这种语言至关重要。
学完了后,根据课程中的知识,自己动手用 Python 开始写一个网页分析和抓取的小程序,然后就知道了 Google 有一个 App Engine (简称 GAE)支持 Python,然后在 GAE 中实现了多个新闻网站的页面抓取,和另一个朋友配合完成了 iOS 上新闻类聚合网站 APP 的服务器端的开发,可惜的是 GAE 在国内无法访问,于是只能提供给海外华人使用了。再然后想用 Django 完成一个电子商务的网站模板,开始是用Django-nonrel在 GAE上部署,后来有一个机会,帮助朋友开始用Pure Django 在 Host 上部署。通过这些实践,慢慢觉得自己在 Python 上终于入门了。
其实学 Python 和学习其它的语言一样,无它,唯手熟尔,不断的逼着自己去实践,在实践中不断的遇到问题和解决问题,最后你就学会了它,这个它可以是 Python,也可以是其它~ 难道你的配置已经低到跑不动 python 解释器了吗?
就我所知 8 年前的电脑跑个 python 还是没问题的。你去下个 iPython 作为解释器 + 编辑器基本上够用了。当然要是图省事,用 IDLE 也可以。

ps.
Python 是通用脚本语言,语言设计的很漂亮,然而他的库(尤其是 win32 上的库)实在是叫人难以恭维。就说一点,他向控制台写输出用的是 WriteConsoleOutputA 而非 WriteConsoleOutputW,后者完全支持 Unicode 而且不受 chcp 值的限制。 反对 @祝博韬。对于一个需要入门 Python 的新人,平台选择只有一点:用自己熟悉的平台,学习陌生的语言。基本的「控制变量」啊。——我真心好奇你是那只眼睛看出我“鼓励人用 Windows” 的?

Python 大部分东西都是与平台无关的。而且如我下面所说,除了做网络服务器开发,Python 还可以做许多其它事情,比如算法研究,比如科学计算和数据挖掘( SciPy 有 Win32 build),比如系统自动化,等等等等。不要局限你的视野。对与学习来说,Python 的标准库多数情况下是平台无关的,入门阶段,平台差异完全不是那么重要。

然后,在 Windows 这样一个 shell 脚本难用到无法忍受、一切几乎必须依赖 GUI 操作的操作系统中,任何的重复性工作都会让人精神崩溃。相比其它自动化手段(bat、PowerShell 和 VBS),Python 的好处是:语法清晰、环境丰富、便于调试。相比 shell(如 Cygwin Bash),Python 默认带了 win32 和 COM interop 库,更方便完成各种与系统结合相对较紧密的操作。

按照 Steve Jobs 说 iTunes for Windows 的说法,Python 就是给地狱里的 Windows 用户的一杯凉水。

回答原题目:
装 ActivePython 或者直接上 iPython Installing IPython (感谢 @许铖 ),然后找一个顺手的编辑器(Notepad++ 之类都很好,如果是 iPython 可以直接用 Notebook ipython.org/notebook.ht),然后看任何一本教材或者官方 Tutorial (docs.python.org)。 IDE:pycharm
包安装,你需要这个,lfd.uci.edu/~gohlke/pyt

然后PowerShell, IPython一搞,基本环境就全是最优了 首先回答原题,初学Python,尤其是对于一个没有任何编程经验的人来说是有益的,在PC下在学习完基本的语法后,可以试着自己写一些东西如给自己的相册按照时间排序,解析MP3 ID3信息等有意思的小项目来帮助自己熟悉编程的概念。

工具的话Python自带的那一套足矣。

如果想要深入学习的话,网上有一大堆专业书籍等着你看,如果不想止步于WEB开发和自己的玩具程序,那么欢迎进入计算机的世界。

==========================

排名第一的( @祝博韬的答案)居然是这样的答案,不认同。

Python作为高度抽象动态语言为什么不能在windows上学?跑在解释器上面为什么不能用windows来学?

Python又不是awk,Python在windows上一样可以干很多事情,请问我写个爬虫就爬点学校网站的数据需要用linux?我自己玩写个小程序整理下本地相册需要用linux?

我在windows下用python学习一下文件读取,给文件排序,写几个排序算法要到linux下去?

请分清楚两种不同功效的OS,放在一起薄此重彼没有任何意义。盲目排斥一类东西是不理智的行为。

========================
还是补充下吧:

POSIX API不是Python的全部,网络编程和服务器端Python的API跟Unix系统高度吻合,那么请问我如果是来用做分词呢?我用来处理文本呢?我用来解析多媒体文件?我用来做科学计算?我用来做图像处理?

如果一定要把Python绑死在Unix上,那么起码Python应该看起来能更像是Unix下的Perl呢!

1. 我认同@祝博韬 关于Python标准库跟Posix API和Unix密切关系的描述。

2. 我不认同语言应该依附于系统,语言应该是完成事物方法的理性的表述元素。

3. 我不认同把Python绑死在Unix和网络编程上。

4. 我认为学习一门语言最重要的是其语法、数据结构以及合理的Paradigm,库也是在这些基础上衍生而来。 windows不裝個powershell 都不好意思用 一定不要在知乎上问这个问题。不然这答案一溜儿看下来你永远也别想入门。

用杨绛的话说,你现在就是想的太多做的太少。
用Nike的话说,Just DO it python能做linux脚本语言不代表就不适合windows开发。除了极少数三方,python基本可以保证优秀的跨平台,甚至在windows下还可以做部分win32的开发。限制自己入门python在linux的平台上纯粹浪费自己的时间,对于新手还要熟悉linux,无形增加成本 就说一点。一定要装 Linux。Python 是一种 Unix 的脚本语言,不要试图在 Windows 上学,你会浪费很多时间。

其它的可以去翻翻这个 topic:
Python 入门 - 热门问答

===========

关于匿名用户和 @张康 的回答,我想解释一下。

就像《黑客与画家》里提到的,Python 是 Unix 的脚本语言,语言不是存在于真空之中,而是依附于一个系统。而 Python 就依附于 Unix。Python standard library 是对 POSIX 的封装。如果你读过 APUE,熟悉标准 C 和 POSIX 规范,你会觉得 Python library 的一切都是那么自然,很多时候,一个 POSIX 的 API 对应一个 Python 的 API,名字都没有改。你想知道一个 API 有怎样的行为,看一下 man 手册就可以了(Python 文档可不一定会写清楚,它假设你知道这个 API 只是对系统 API 的简单封装)。一切都是文件。管道、fd、进程、信号,你不需要太多的思考为什么是这么回事。因为在 Unix 世界里它们本来就是这么回事。而 Python 在 Windows 上的存在是一种别扭的移植。去查微软的文档?你只会查到 CreateFileEx 这样的东西。即便是 @张康 提到的学习文件读取,你也不得不在打开文件的时候设置为 "b" 模式以免被 Windows 默认的 text 模式搞坏了换行符。(初学者怎么能搞得懂这一点?)你也不会在试图用 pip 安装 mysql 库的时候发现那么难编译过去。在 Windows 上恐怕只适合学 Python 的基本公理,即语法和数据结构。

如果你学 Python 不只是打算玩玩,反正你将来写的程序肯定会在 Unix 上面跑。你会发现比起 Windows 这是一个更适合 hacker 生活的世界。学习一门语言并不应只学习这门语言本身,也要学习这门语言存在的世界,包括整个工具链。只有这样你才能真正理解它的设计思想。你会习惯用 logging、getopt/argparse、readline、shebang、守护进程等等这些标准的做法。而在 Windows 上恐怕你永远只会把你写的那个 py 文件当作一个 exe 看待。为什么不现在就直接跳过 Windows 呢?

============

问题限定在 PC,为什么不装 FreeBSD?因为 Linux 发行版比 FreeBSD 更适合新手使用。

============

既然匿名用户禁止我继续评论他的答案来回避我的问题,那我就写在这里吧。你指出了 Windows 上 shell 如此难用,并且你自己也不用,为何还要鼓励其他人用呢?我的观点是在 Unix 环境下学习 Python,事实上你不需要精通 Unix,只需要入门一些基本命令就可以开始了。在学 Python 的过程中可以同时学习 POSIX API 和一些文件、fd、管道之类的概念,何乐而不为?把这些丢了岂不太可惜了?

另外从头到尾我都没有说 Windows 不好,评论区里的 Windows 用户干嘛这么激动…