http://www.crifan.com/how_to_do_python_development_under_windows_environment/

本文目的

希望对于,如何在Windows下,写Python代码,进行Python开发,运行Python脚本的人,看了此文后,懂得了:

什么是cmd下面去运行Python脚本;

什么是Python的交互式的shell;

什么是Python的IDE。

前提知识

看此文之前,需要知道:

Python语言的基本知识

包括知道其代码就是普通文本等基础知识

不了解的,可以先去看:

【整理】计算机语言基础知识介绍

以了解关于计算机语言的宏观介绍;

再去看:

【整理】Python语言简介     
就明白了。

已经在Windows中安装好了Python

【TODO:写教程解释如何安装Python】

另外提示一下,关于版本的选择:

【整理】总结Python2(Python 2.x版本)和Python3(Python 3.x版本)之间的区别

如何在Windows下开发Python(如何运行Python脚本)

下面,通过最简单的Python代码,此处只是打印一些Python版本信息和系统信息:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Function:
【整理】如何在Windows下开发Python(如何运行Python脚本)
 
 
Author:     Crifan Li
Version:    2012-12-06
"""
  
import platform;
  
pythonVersion = platform.python_version();
uname = platform.uname();
  
print "Just for demo how to do python development under windows:";
print "Current python version info is %s"%(pythonVersion);
print "uname=",uname;

来说明,如何在Windows下,进行Python开发。

Python的最原始的开发方式是什么样的

相对来说,最原始的,最基本的,开发Python的方式,只是:

找个文本编辑器,新建个.py文件,写上Python代码

Python代码,本身就只是文本;

所以,从原理上来说,只需要找个合适的文本编辑器,即可;

换句话说,如果只是简单的写写几行Python代码,你用Windows的记事本(Notepad),都是可以的;

只不过,由于Notepad功能太弱,所以在此个人推荐Notepad++。

关于Notepad++的内容,你想要的,几乎所有的内容,都可以在这里找到解释:

【crifan推荐】轻量级文本编辑器,Notepad最佳替代品:Notepad++

此处呢,对应的就是:

用我所推荐的Notepad++,新建一个文件,然后包括代码进入,存为对应的一个.py的文件。

而关于如何操作,此处也一点点截图,透彻的说明一下:

此处再次提示一下,一下Notepad++的所有功能,特性,用法,上面那个帖子中,都有专门的介绍。

想要更加详细了解的相关的Notepad++的某个特定功能的用法的,自己去看即可。

下面的截图,就不再事无巨细的解释Notepad++的功能特点了。只是截图解释如何操作而已。

打开Notepad++后,点击新建,新建出一个新的文件:

然后把上面给你们的代码,拷贝进去,就变成了:

此处由于是新建的空白文件,所以Notepad++,不知道你是Python代码,没法帮你自动实现语法高亮,

需要手动去设置一下:

语言->P->Python:

就可以看到Python代码的语法高亮的效果了:

然后去保存到某个位置。

文件->另存为:

在弹出的对话框中,输入要保存的文件名:demoRunPythonUnderWindows

提示:其中可以看到Notepad++自动帮你写好了.py后缀,那是因为你之前设置了Python语法高亮。

然后再选择对应的路径去保存:

提示:

我此处的路径是:

E:\Dev_Root\python\how_to_dev_python\

你自己随便,只是要注意,路径中,不带中文的。以避免各种中文路径不识别等问题。

保存好后,就是这样的了:

打开Windows的cmd,并且切换到对应的python脚本所在目录

方法1:手动打开cmd,并cd到对应路径

而对于,什么是windows的cmd,如何打开cmd,如何切换到对应的路径等内容,不熟悉的话,可以去参考:

Windows的命令行工具: cmd

方法2:通过Notepad++的Open current dir cmd

此处,使用一个更方便的办法,利用Notepad++中功能,直接打开cmd,并切换到对应路径:

然后就直接实现,打开了cmd,并且切换到对应的当前文件所在路径了:

在cmd中去运行你的Python脚本(.py文件)

然后就是,在cmd中,输入你的Python脚本,即.py文件的完整的文件名。

此处是:

demoRunPythonUnderWindows.py

小提示:

正常的是通过手动输入对应的Python的完整的文件名,即,对于此处的demoRunPythonUnderWindows.py,一个个字母的输入

不过,此处有个小技巧,可以利用Windows(和Linux中通用的)Tab键,然后会自动显示出你当前目录的文件;

如果当前文件夹有多个文件,多次按Tab键,会在多个文件之间切换。此处就一个文件,所以通过按Tab键,就可以一下子就显示出对应的整个文件名了:

然后输入回车,即可运行对应的Python脚本,接着在cmd中也就可以看到输出的结果了:

如此,就是一个,完整的,在windows的cmd中,运行Python脚本的流程了。

而接下来,作为正常的开发Python的流程,就是,你继续去修改你的Python代码,添加新的代码,然后保存python文件,

再回到cmd中,重新再次运行Python,以验证程序运行是否正常,是否获得了你所期望的结果。

如此反复,一点点,由少到多,一点点写出足够复杂的Python代码,实现你的复杂的功能。

利用Python的shell进行交互式开发又是什么样的

Python有个shell,提供一个Python运行环境。方便你交互式开发。

即写一行代码,就可以立刻被运行,然后方便查看到结果。

而Python的Shell,在Windows环境下,又分两种:

Python (command line) 和IDLE (Python GUI)

下面分别介绍一下。

命令行版本的Python Shell – Python (command line)

Windows下,安装好Python后,你可以在开始菜单中,找到对应的command line版本的Python Shell的:

其实,Win7中,有个更方便的方式,直接在搜索框中搜python,即可找到:

打开后,就是这个样子的:

其中可以显示出来对应的python版本信息和系统信息。

然后就是三个大于号>>>接下来,你就可以,像在之前所说的,普通文本中输入python代码一样,在此一行行输入代码,然后就可以显示对应的信息了:

其中可以看到,当你输入对应的,第一行print时,此处命令行(command line)版本的Python Shell中,就可以,动态的,交互式地,显示出对应的信息了。

正由于,此处可以,直接地,动态的,交互性式地,显示出对应的信息,所以,才被叫做Python 的交互式的Shell,简称Python Shell。

对应的,把前面的代码都输入完毕,结果显示为:

带图形界面的Python Shell – IDLE (Python GUI)

下面将要介绍的,同样是Python的Shell,但是是相对于command line版本而言,是GUI,带图形界面的版本的。

对应的打开方式,和上面类似,可以直接搜python而找到:

对应的,可以看到,其名字写的是IDLE。

打开后就是这样的:

左上角的红色图标,好像是TK,是图形界面库的一种。

这个就是,很多Python教程中,所常用来作为Python的开发环境,教别人写Python代码的那个IDLE。

对应的,输入上述的代码,结果也是类似的:

关于(command line或GUI版本的)Python Shell的用途

而作为一般的Python开发的话,则很少有用这个Python Shell的,不论是command line的还是GUI版本的IDLE。

其比较适合用来测试,演示一些简单的代码的执行的效果。

好处是很方便,可以立刻看到代码执行的结果。

所以,结论就是:

对于python的shell,不论是command line版还是GUI版,都比较适合偶尔要测试少量的Python代码的情况下去使用,而不适合长期的开发Python。

举例:

比如我之前就是借用Python的一些库函数,实现一些对于url解码的功能:

【已解决】在用google搜索出来的链接无法打开的情况下,如何找到该链接的真实地址

利用第三方Python的IDE进行Python开发又是怎么回事

关于IDE的基本概念,不了解的先去看:

【整理】什么是IDE

即:

IDE

=集成开发环境

=把开发相关的各种环境(和工具)都集成到一起

而Python的IDE,就是:

Python IDE

=Python的集成开发环境

= 把和Python开发相关的各种工具,即Python代码编辑器 + Python的运行环境:windows的cmd+有菜单和快捷键直接帮你实现运行对应的Python代码

当然,除此之前,Python的IDE,还会有更多的方便好用的功能,比如调试功能等。

为何会有Python的IDE

而之所以会有Python的IDE的诞生,也很容易理解。

就是因为,如果开发Python过程中,写Python代码,调试Python代码,查找相关的函数的解释等等操作,

如果都是基于前面介绍的,用Notepad++等编辑器去编辑Python代码,写完代码了,再切换到windows的cmd中去运行,

往往觉得很麻烦。

尤其是大型项目的话,可能就更加显得不那么高效;

以及对应的需要一些额外的功能,比如调试复杂的Python代码,需要一点点跟踪调试,找到错误的根本原因等等。

上述的开发模式,就更显得力不从心。

所以,才会有:

Python发展到现在,已经有了很多第三方的,别人开发的,可以用于或者专门用于Python开发的一些集成开发环境,即Python的IDE。

目前常见的一些Python的IDE

参考别人的一些讨论和总结:

【python】【求助】关于python编辑器的选择

python编辑器对比和推荐

罗列几个,相对用的比较广泛的(排名不分先后):

Ulipad

PyScripter

Wing IDE

Eclipse + pydev插件

关于其中的一些IDE的效果,可以参考:

【整理】各种Python的IDE(集成开发环境)的总结和对比

Python的IDE和Python代码编辑器,Windows的cmd,等的关系

下面,随便找了一个Python的IDE,

比如,【记录】使用Python的IDE:PyScripter,通过截图来对比性的解释,你就更容易理解,Python的原始开发环境和Python的IDE之间的关系了:

这下,至少你应该对于:

Windows的cmd;

Python的Shell:

  • command line版本;

  • GUI版本:IDLE

Python的IDE;

三者之间的关系,有个大概的认识了。

使用IDE时所遇到的一些常见的问题

IDE只能够打开了文件,并不代表就已经在shell中运行了该文件

这里有一个错误的例子,比如这里所遇到的:

如图,其在当前的IDE中,打开了一个.py文件(balanced_color_module.py),按照正常的逻辑,应该到菜单中,运行代码,然后再去对应的console中(此处估计是Debug I/O),去查看运行的结果。

但是,很明显,其此处的那个py文件(balanced_color_module.py),本身即使运行,也不会有什么print输出信息;

另外,其此处没有打开对应的console(此处估计是Debug I/O),而是打开的是Python Shell,所以,结果就是:

其在Python Shell中输入的任何代码,本质上,和你当前IDE中所打开的py文件,都没有半毛钱关系的。

所以导致的结果就是,虽然在Python Shell中输入了一些代码:

color = {"red":0.2, "green":0.4, "blue":0.4}

balanced_color(color);

但是结果却出错,找不到对应的balanced_color函数。

所以,也就在常理之中,预料之内了。

因为,此时其所做的事情是:

使用了IDE,但是并没有使用IDE中集成的终端调试输出;

却另外打开了Python Shell,

而由于此处的IDE中打开的代码,和Python Shell没有半毛钱关系,所以才会运行代码出错,找不到对应的函数的。

需要注意,确保有可以运行的Python起始部分的代码

比如这里遇到的问题是,通过IDE中运行Python代码,但是没有响应:

其所遇到的问题,其实本质上,和IDE没有关系,但是不熟悉Python的人,还是容易在IDE中犯这类问题的。

错误原因是:

没有起始代码可以运行;

解决办法是:

把上面最后一行的

start();

定格写,变成:

start();

就可以了。使得Python可以执行到对应的start函数了。

当然,最好的写法是,把:

start();

再改为:

if __name__ == "__main__":

start();

具体的解释,参见:

【整理】Python中的__name__和__main__含义详解

总结:到底使用哪种环境去开发Python

一句话:各取所需。根据自己的需求,决定用什么开发环境。

对初学者的建议:如何选用Python的开发环境

再加一句:针对初学者,我个人倒是建议使用第一种,即windows的cmd下,去运行python脚本;

目的很明确,很多东西的学习,其本质上,都是需要一个循序渐进的过程的,学习Python语言同样如此。

在没有学会走路,即如何搞懂Windows的cmd下运行Python脚本,

就想学会跑了,即直接利用Python的IDE,包括shell和第三方开发环境,

结果就是,很多东西,还是不明白到底是为什么,理解的不透彻。

而当Python的基本知识,基本开发流程熟悉了之后,再建议你去使用第三方的Python的IDE,到时候,才能算是用着很爽。

即:

先:Windows的cmd+Notepad++;

再:选用某个IDE,比如PyScripter,Ulipad等。

如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE的更多相关文章

  1. apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法

    apache环境下禁止某文件夹内运行PHP脚本.禁止访问文件或目录执行权限的设置方法   首先我们来看两段对上传目录设置无权限的列子,配置如下: <Directory "要去掉PHP执 ...

  2. powershell脚本执行绕过powershell下脚本执行限制(cmd下执行)以及在cmd下隐藏脚本窗口

    powershell脚本执行绕过powershell下脚本执行限制(cmd下执行) powershell脚本运行方式有两种,一种是powshell中运行,另一种是在cmd中(在某些情况下相当有用) p ...

  3. Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常

    共享原因:虽然用一篇博文写问题感觉有点奢侈,但是搜索百度,相关文章太少了,苦苦探寻日志才找到解决方案. 遇到问题:在windows平台上开发的mapreduce程序,运行迟迟没有结果. Mapredu ...

  4. Windows Phone开发手记-WinRT下自定义圆形ItemsControl

    这里的ItemsControl指的是Xaml里的集合控件,包括ListView,GridView等,此篇博客主要参考MSDN Blog的一篇文章,具体出处为:http://blogs.msdn.com ...

  5. Windows Phone开发手记-WinRT下分组拼音的实现

    Windows Phone版本号自升入8.1以来,开发者就多了一个选项,开发基于WinRT架构的WP或者Universal Windows App.然而开发框架转为WinRT后,很多原有的WP8基于S ...

  6. Windows Phone开发手记-WinRT下启动器替代方案

    在WP7/8时代,Silverlight框架提供了很多启动器API,我们可以很方便的使用的,来完成一些系统级的操作.但是随着Win RT架构的WP8.1(SL 8.1除外)的到来,原有的SL下的启动器 ...

  7. Delphi - 让Delphi10.2在Windows下开发的图形界面程序运行在64位Linux中!

    FmxLinux官网:https://fmxlinux.com/ 参考: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Linux_Applica ...

  8. 宝塔 windows下apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件

    首先我们来看两段对上传目录设置无权限的列子,配置如下: //在宝塔下如用/upload这个路径应用无效,一定要C:/wwwroot/upload才有效果 <Directory "要去掉 ...

  9. 4.1. 如何在Windows环境下开发Python

    4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新 ...

随机推荐

  1. 52shaidan.net

    52shaidan.net 52gendan.net 朋友的域名

  2. HTTP 配置与编译安装

    目录 HTTP 配置与编译安装 HTTP 相关配置 DSO 定义'Main' Server 的文档页面路径 定义站点主页面 站点访问控制常见机制 基于源地址实现访问控制 日志设定 设定默认字符集 定义 ...

  3. linux正则表达式扩展部分

    扩展的正则表达式(Extended  Regular  Expressions): 使用的命令为:grep  -E以及egrep [了解即可] 1)+ 表示重复“一个或一个以上”前面的字符(*是0或多 ...

  4. SpringBoot-Security-用户权限分配-项目搭建

    SpringBoot原则是约定优于配置,简化spring应用开发,去繁从简,产品级别的应用. SpringBoot有哪些优点1.快速创建独立运行的spring项目与主流框架集成 2.使用嵌入式的ser ...

  5. ArcGis API for JavaScript学习——离线部署API

    ArcGis API for JavaScript开发笔记——离线部署API 以3.18版API为例: 在加载图图前引用GIS服务是必须的.有两种方法,一是在线引用,而是离线部署引用. 在线引用: & ...

  6. 标准C++中string类的用法总结

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

  7. L1-039 古风排版 (20 分)

    L1-039 古风排版 (20 分)   中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<),是每一列的字符数.第 ...

  8. 手把手教你启用RemoteFX以及Hyper-V GPU卸载

    [TechTarget中国原创] 微软的RemoteFX特性可以帮助改善虚拟机图形密集型应用工作负载的性能. 服务器虚拟化已经成熟到大多数工作负载都能够在虚拟机内运行的程度.毫无疑问,与其他工作负载相 ...

  9. C#入门篇5-8:流程控制语句 break语句

    #region break语句 public class Breakapp { public static void Fun1() { //计算1+2+…+100的求和程序,打印显示每次循环计算的结果 ...

  10. 33、secret

    CemFjee9rueuoeeQhgkxCee9kee7nO+8jOW6lOeUqO+8jOaVsOaNruW6k+acjeWKoeeahOWFs+mUruS/oeaBr++8iOWmgiDmnI3l ...