Python开发技巧与实践

1 对Python包的操作
一个完整的大型Python程序项目是由模块和包的形式组织起来的。模块是一种组织形式,它将许多有关系的代码放到单独的文件中。包是Python模块所在的目录,为了组织好模块,才将多个模块组成一个包。
在cmd(命令行)中使用pip install package_name命令在线安装Python包。Python的离线安装包可从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载。离线安装包为.whl文件,可以使用pip install.whl命令离线安装Python包。Python安装包的常用资源如下。
Python官方模块库,Pil网址:https://pypi.python.org/pypi
GitHub:https://github.org

1.1 安装pip
如果把编程语言比作武器,那么Python就是一把双管枪(Python2/Python3),而各种为Python编写的模块和包就是子弹。现在使用pip来装备我们的武器吧。以下操作在Windows系统下进行。
(1)按“Win+R”快捷键打开“运行”窗口,输入cmd命令后按回车键,打开命令行窗口,如图1和图2所示。

图1

图2

(2)执行以下命令安装pip,如图3所示。
easy_install pip

图3

(3)pip的安装路径与Python2/Python3的安装路径是相同的,都在x:\Pythonxx\Scripts路径下。本例中Python3被安装在D:\installed_software\Python35目录下,如图4所示。
图4

(4)使用pip安装模块,命令是:pip install模块名。注意:pip install和模块名之间有空格。输入命令后按回车键,在窗口中将会显示下载信息,安装位置在%/Python35/Lib/site-packages目录下,所以Python 3.5已经默认安装了pip。
如果通过pip命令安装模块失败,将出现如图5所示的错误信息。
图5
请检查是否已经把%/Python35/Scripts目录添加到系统的环境变量中,因为pip默认安装在%/Python35/Scripts目录下。需要把这个目录添加到系统的环境变量中,比如Python的安装路径为C:\Python35\,那么需要在环境变量Path中添加“C:\Python35\Scripts\;”,记得以分号分隔。

1.2 pip常用命令
列出已安装的包:
pip freeze or pip list
导出requirements.txt:
pip freeze ><目录>/requirements.txt
在线安装包(模块库):
pip install <包名>
或者
pip install -r requirements.txt
使用==、>=、<=、>、<来指定版本,如果不使用,则安装最新版本。
安装本地包:
pip install <目录>/<文件名>
或者
pip install --use-wheel --no-index --find-links=wheelhouse/ <包名>
注意,<包名>前有空格,可简写为:
pip install --no-index -f=<目录>/ <包名>
卸载包:
pip uninstall <包名>
或者
pip uninstall -r requirements.txt
升级包:
pip install -U <包名>
升级pip:
pip install -U pip
显示包所在的目录:
pip show -f <包名>
搜索包:
pip search <搜索关键词>
查询可升级的包:
pip list -o
下载包而不安装:
pip install <包名> -d <目录>
或者
pip install -d <目录> -r requirements.txt
打包:
pip wheel <包名>
国内PyPI镜像:

http://pypi.douban.com/simple豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里云
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple/ 清华大学
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学
http://mirrors.sohu.com/python/ 搜狐镜像

指定镜像安装源:
pip install <包名> -i <指定镜像源>
例如:pip install PyQt5 -i http://pypi.douban.com.simple

更多的有关pip的使用细节,大家可以上网自行查询。

1.3 使用pip安装第三方库
Python默认使用的是https://pypi.python.org/pypi中的Python库,通常从国内连接国外的服务器会导致超时,你可以设置成国内的PyPI镜像站点。比如豆瓣https://pypi.douban.com/simple,然后在命令行中添加PyPI镜像参数。可以使用如下命令从豆瓣下载最新的Python第三方库。

pip install Pillow -i https://pypi.douban.com/simple

1.4 pip参数解释
在命令行输入以下命令,将得到pip 参数的详细解释(默认是英文的,这里翻译成中文以便于读者理解)。

pip --help

结果如下:

Usage:
pip<command> [options]Commands:install                     安装包uninstall                   卸载包freeze                      按照一定格式输出已安装包列表list                        列出已安装包show                        显示包详细信息search                      搜索包,类似于yum中的searchwheel                       根据需要生成wheel文件 download                   下载模块hash                        计算模块包的哈希数值help                        当前帮助信息General Options:-h, --help                  显示帮助信息
  -v, --verbose               更多的输出,最多可以使用3次
  -V, --version               显示版本信息,然后退出
  -q, --quiet                 最少的输出
  --log-file <path>覆盖记录verbose错误日志,默认文件为:/root/.pip/pip.log
  --log <path>不覆盖记录verbose输出的日志
  --proxy <proxy>           以[user:password @] proxy.server:port的形式
  --retries <retries>        重试次数(默认为5次)
  --trusted-host <hostname>  可信任站点
  --timeout <sec>连接超时时间(默认为15秒)
  --exists-action <action>   路径已存在时的默认操作: (s)witch, (i)gnore, (w)ipe, (b)ackup
  --cert <path>证书
  --cache-dir<dir>           cache目录
  --isolated                  绝对模式,无视Python环境和用户设置
  --upgrade                 如果已安装就升级到最新版本

2 Python 代码缩进问题
一个Python脚本本来运行得很好,但是写了几行代码后,而且也确保每行都对齐了,运行时却出现如下语法错误:

IndentationError: unindent does not match any outer indentation level

这是什么原因导致的呢?
(1)对于此错误,最常见的原因是代码没有对齐。但是根据错误提示的行数,检查代码也没有发现问题,都是使用Tab键对齐的,没有不对齐的行数。
(2)把当前Python脚本的所有字符都显示出来,看看有没有特殊的字符。
打开文本编辑器Notepad++,单击“视图”→“显示符号”→“显示空格与制表符”,如图6所示。
图6
可以看到,问题出现在第29行,源代码对齐使用的是空格键,和前面几行代码对齐使用的Tab键是不匹配的,即对齐代码时混用了Tab键和空格键,如图7所示。

图7
在Python语法中对齐代码是不支持混用Tab键和空格键的,所以出现了上述错误提示。解决方法是在第29行改为使用Tab键来对齐代码,修改后如图8所示。
图8

3 获取应用图标
PyQt5应用使用的所有图标都是从easyicon网站下载的,easyicon的官方网址是:http://www.easyicon.net/,如图9所示。

图9
easyicon网站提供了超过50万个的PNG、ICO、ICNS格式的图标搜索、图标下载服务,可以免费使用。

《PyQt5 开发技巧与实践》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. 开发者怎么样做到盈利
  2. sgi allocate
  3. 数据结构-二叉树的非递归遍历
  4. 《Flutter in action》开放下载!闲鱼Flutter企业级实践精选
  5. Linux grep及正则表达式
  6. 多种系统负载100%方法(高可用测试、性能压测用)
  7. win7怎么清除卸载Ghost启动项的残留
  8. 一键加速去不掉加锁的_老旧油渍去不掉?这几款清洁神器帮你轻松搞定油污难题...
  9. how to send blogs to wordpress through the windows live writer
  10. Excel如何在表格内打勾
  11. 一种测试方法论RST(非广告)
  12. 220v降压成5v电路图-220v降压5v简单电路
  13. UG/NX二次开发 单位化向量 UF_VEC3_unitize
  14. E聊SDK-简介(1): 介绍
  15. 聊天的一点笔记--顺便浅谈技术服务公司的激励制度设计
  16. 潜伏者(NOIP2009)
  17. Compiling C
  18. ca安全证书字段_CA数字证书常见问题解答
  19. uniapp页面路由传参
  20. yolov5中的best.pt

热门文章

  1. 在Spyder安装xlrd插件
  2. 自媒体常用小程序:去水印、配音、文案提取
  3. 用PS去设计食品网站的展示
  4. UI设计师高效切图6大步骤
  5. 汉堡包菜单_神圣的汉堡包!
  6. java实时获取android网速_Android实现网速实时监测工具类
  7. 我的汉语名字叫东坤,可以帮我起一个读音相近的英语名字吗
  8. 非精确线搜索 matlab,使用非精确线搜索Armijo算法确定步长的最速下降法(MATLAB)...
  9. 解决UE4打包Android报错app:packageDebug FAILED的一个土方法
  10. 使用turtle画随机颜色的圆圈