Python 模块、插件

2019-12-11  本文已影响0人  李霖弢

模块

在Python中,一个.py文件就称之为一个模块(Module)。
包含__init__.py文件的模块的目录称为包(Package)。__init__.py本身就是一个模块,直接调用包名时即调用该模块。
以模块形式调用该包或其下的模块时(如python -m 包名.模块名import 包名),会先调用__init__.py中的逻辑

通过import 包名.模块名from 包名 import 模块名的方式可以调用包下的模块。
类似的,可以有多级目录,组成多级层次的包结构。
注意模块名不要和系统模块名冲突(可以在Python交互环境执行import 模块名,若成功则说明系统存在此模块)

导入优先级:
  1. 同名包下的__init__.py模块
  2. 自定义的该模块 (即导入模块名.py文件)
  3. 系统自带的该模块
import 和 from import
import tkinter
root = tkinter.Tk()  
from tkinter import *
root = Tk()  
import sys
import tkinter as tk
print(tk.__dict__)
print(sys.modules[__name__].__dict__)

被导入的非内置模块会在工程根目录下的__pycache__目录下生成和py文件同名的以.cpython-**.pyc结尾的字节码文件(cpython是C语言实现的python解释器,**为其版本号),之后若再次执行该脚本,它先检查【本地是否有上述字节码文件】和【该字节码文件的修改时间是否在其源文件之后】,是就直接执行,否则重新加载

python -m 和 sys.path

sys.path是一个包含Python环境变量的list,当通过import引入模块时就会在sys.path目录中查找相应的模块

__name__

当在命令行直接运行一个python模块时,Python解释器把一个特殊变量__name__置为__main__,如果通过模块引入并运行,则置为该模块名

__file__

该代码所在的文件路径(可能是绝对路径也可能是相对路径,由文件/模块被引入的方式决定)


模块文档

模块内的第一段str视为模块的文档,可以通过模块名·__doc__访问
同理,函数体内的第一段str也可以通过函数名.__doc__访问

pip安装第三方模块

pip是python的包管理工具。(pip对应python2,pip3对应python3)

pip install 包名
pip install 包名 -i https://mirrors.aliyun.com/pypi/simple/

或修改配置文件

  1. 在windows文件管理器中,输入 %APPDATA%
  2. 会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件
  3. 在新建的pip.ini文件中输入以下内容
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
pip show 包名
requirements.txt

requirements.txt是一个依赖库的列表,可以通过pip freeze > requirements.txt将本地所有包导出到该文档,也可以使用pipreqs仅仅将当前项目的依赖库导出到requirements.txt

pip install pipreqs
# 在当前目录生成requirements.txt,(--force表示如已存在则覆盖)
pipreqs . --encoding=utf8 --force

通过pip install -r requirements.txt可以安装requirements.txt中依赖的库。

Anaconda

Anaconda集成了python及其常用包,并做了版本管理。Anaconda安装的第三方模块会安装在Anaconda自己的路径下,不影响系统已安装的Python目录。

常用指令

在cmd中需要输入conda前缀,在conda中可以省略

conda create -n MyPython3 python=3.7.4 numpy Django=2.2
proceed([y]/n)? y 

常用的第三方库

可以在 awesome-python 这个网站上按照分类去寻找

上一篇 下一篇

猜你喜欢

热点阅读