Python3入门(七)——模块
在Python中,一个.py文件就称之为一个模块(Module)。(例如main.py就称之为main模块)
为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的(使用pycharm建包时会自动创建),可以为空,也可以有代码
一、使用模块
一个模块定义的模板如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*- """这是一个测试模块"""
__author__ = '江北' import sys def test():
args = sys.argv
if len(args) == 1:
print("hello world!") if __name__ == "__main__":
test()
第一行/第二行:注释,分别用于Linux下直接执行以及指定编码
第三行:文档注释,任何模块的第一个字符串都视为文档注释。根据pycharm的提示,建议使用三引号(triple)
第四行:亮明身份,表明作者。当然和其他IDE一样,以上几行都可以通过设置为模板,在新建时自动生成(将在pycharm使用教程中介绍)
以上是推荐使用的模板
使用模块的第一步,是导入模块:
import sys
导入后便可以使用变量sys来指向并使用该模块了。
形如from...import可以只引入模块中的部分name:
from modname import name1[, name2[, ... nameN]]
相关细节可以参考https://www.cnblogs.com/lidagen/p/7090777.html
python模块中变量的作用域:
1.普通变量是公开的,例如abc,age
2.形如"__name__"的是特殊变量,可以直接引用,自己的变量一般不要使用这种变量
3.形如"_count"和"__count"(一个和两个下划线)的变量是私有变量,一般不应该被公开直接访问(但python中没有强制限制不能访问,为了规范,请不要公开访问私有变量)私有变量和私有函数都不应该被公开访问,模块公开普通公开函数即可
二、安装第三方模块
1.python包管理工具
Python中的包管理工具,叫pip
unix系统中不用再次安装pip了,直接运行pip即可(python3请尝试pip3)
windows中在安装时确保勾选了pip(默认是安装了的,自定义安装时不要勾掉即可):

如果没有。恭喜。。卸载重装吧。重装时记得勾选pip和add to path了!
2.python库在哪
第三方库一般来说会在https://pypi.org/注册(有点儿像maven中央仓库了)
配置pip源,和配置maven仓库类似:https://www.cnblogs.com/microman/p/6107879.html
3.Python如何安装库
例如,安装一个图像处理库Pillow的命令如下:
pip install Pillow
// 静待安装完成即可
4.anaconda
这是一个基于Python的数据处理和科学计算平台,它已经内置了许多非常有用的第三方库,我们装上Anaconda,就相当于把数十个第三方模块自动安装好了,非常简单易用。
下载好后再次在命令行运行python可以看到anaconda的信息。这个时候可以直接使用例如numpy等第三方库了!
更多介绍,参考知乎,
5.模块搜索路径
使用Import导入模块时:
import mymodule
默认会在当前路径、内置模块、已安装第三方模块中搜索模块,内置模块的路径在sys模块的path中:
pycahrm的console:
import sys
sys.path
['F:\\Program Files\\JetBrains\\PyCharm 2018.1.1\\helpers\\pydev', 'F:\\Program Files\\JetBrains\\PyCharm 2018.1.1\\helpers\\pydev', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages', 'F:\\Program Files\\JetBrains\\PyCharm 2018.1.1\\helpers\\pycharm_matplotlib_backend', 'F:\\py\\lenarPy', 'F:/py/lenarPy']
cmd命令行
>>> import sys
>>> sys.path
['', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\zcc\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages']
>>>
添加自定义搜索路径有两种方式:
1.临时修改,运行时有效,结束后失效
>>> import sys
>>> sys.path.append('/Users/michael/my_py_scripts')
2.永久修改
添加环境变量 PYTHONPATH ,注意只添加自己的路径即可!
Python3入门(七)——模块的更多相关文章
- 全面系统Python3入门+进阶课程 ✌✌
全面系统Python3入门+进阶课程 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 无论是大数据.人工智能还是机器学习,Python都是最热门的首选语言 ,这 ...
- 【转】Python3 (入门6) 库的打包与安装
Python3 (入门6) 库的打包与安装 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/6940288 ...
- Python3中正则模块re.compile、re.match及re.search函数用法详解
Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...
- Python爬虫入门七之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- python3入门之类
在面向对象的语言中,类是最重要的一环,python自然拥有类这个机制.python的类机制,与C++,java的区别不是很大,类的大多数的重要特性都被沿用了,一样可以多态,抽象,封装: python3 ...
- python3入门之赋值语句介绍
获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍赋值语句,以及几种特殊的赋值.下面附有之前的文章: python3入门之print,import,input介绍 python入门之字 ...
- python3入门之print,import,input介绍
本节主要介绍print,import和input,t函数,包括他们在python2.7和python3 的区别以及用法.下面附有之前的文章: python3的print函数的变化 python3之 ...
- python3入门之字典
获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍字典,字典也成映射,时python中唯一内建的映射类型.更多详细请点击readmore.下面附有之前的文章: python入门之字符串 ...
- Python3入门之软件安装
获得更多资料欢迎进入我的网站或者 csdn或者博客园 最近将我的Python笔记整理下,希望能对他人有所帮助,这是第一课,安装入门篇: windows下安装Python 1.下载,从这里下载:[下载链 ...
- 转 Python爬虫入门七之正则表达式
静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
随机推荐
- [Android] Linux下JNI简单实现过程
大概梳理了一下JNI的过程: start->先写好A.java文件,里面添加native方法B,调用库C.so->编译成.class文件->用javac生成.h文件,文件包含Java ...
- asp.net调用微信扫一扫功能
1.页面引用http://res.wx.qq.com/open/js/jweixin-1.0.0.js 2.前台代码 function shaomiao() { wx.config({ debug: ...
- vs2017安装cuda9.0编译默认示例失败解决方法
https://devtalk.nvidia.com/default/topic/1027209/cuda-setup-and-installation/cuda-9-0-does-not-work- ...
- 关于SQLSERVER走起公众帐号推送视频的通知
关于SQLSERVER走起公众帐号推送视频的通知 为了SQLSERVER走起这个微博帐号和微信帐号更加多样化,内容更加丰富 也为了发挥微信.微博的媒介传播威力,在以后的微博.微信每日推送中会在适当的时 ...
- SQL Server客户端工具到底使用的是哪个provider呢?
SQL Server客户端工具到底使用的是哪个provider呢? 转载自:http://blogs.msdn.com/b/apgcdsd/archive/2013/01/10/sql-server- ...
- c#List数组移除元素
; i >= ; i--) //移除已经订阅的患者 { if (AllPatientsEntities[i].姓名 == item.患者姓名) AllPatientsEntities.Remov ...
- 50家硅谷IT公司技术博客
分享一下 50 家硅谷优秀 IT 公司技术博客,从中可以了解企业文化,技术特色和设计语言,如果直接列出来很单调,加上点评,算吐槽版吧. 知名大厂 1. Facebook https://www.f ...
- 【require.js】模块化开发
一.Require.js及AMD Require.js:是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一. AMD(Asynchronous Module Definit ...
- 一次gcc编译失败分析
1. 场景: 在使用gcc编译时,编译器报错:xxx:'xxx'未定义的引用 2. 排查过程: 首先,我很自然的想到是不是自己使用了未定义的函数或者将函数名称写错了,在检查了一边过后,我发现自己使 ...
- 《面向对象程序设计》c++第六次作业___calculator SE
c++第五次作业 Calculator SE 代码 PS:这次作业延迟了很久,人要是迷茫啊----唉------ 新增GUI界面,使用Qt creator编写,纯代码生成控件.写坐标. 感觉Qt cr ...