【python】PIP包管理工具

1.PIP 的命令 

install 安装软件包 
download 下载软件包 
uninstall 卸载软件包 
freeze 按照requirements 格式输出安装包,可以到其他服务器上执行 
    pip install -r requirements.txt 直接安装软件。
list 列出当前系统中的安装包。
show 查看安装包的信息,包括版本,依赖,许可证,作者,主页等信息。
check :pip 9.0.1 提供的最新子命令,检查安装包的依赖是否完成。
search 查找安装包 
wheel :打包软件到whell 格式。
hash :计算安装包的hash值。
completion:生成命令补全配置。
help :获取 pip 和子命令的帮助信息。

pip search flask 
pip install flask==0.8 
pip uninstall flask 
--查看安装包的信息 
pip show flask  
--检查依赖 
pip check flask 
--查看已安装的安装包列表。
pip list 
--导出系统已经安装的安装包列表到 requirements.txt 文件。
pip freeze > requirements.txt 
--从 requirements.txt 文件安装 
pip install -r requirements.txt 
--使用 pip 补全命令。
pip completion --bash >>~/.bash_profile 
source ~/.bash_profile

2.加速pip 安装技巧 

pypi.python.org 不稳定,慢或者不可以用。
可以选择阿里云或者豆瓣的镜像。

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

可以将 pip 的镜像源写入 pip 的配置文件。
~/.pip/pip.conf 
vi pip.conf 
[global]
index-url = https://pypi.douban.com/simple 

3.将软件下载到本地安装部署 

(1)下载到本地。
pip install --download=`pwd` -r requirements.txt 
(2)本地安装 
pip install --no-index -f file://`pwd` -r requirements.txt 

pip 能够解决依赖问题,如果我们下载flask 到当前目录下, 则 flask 
的依赖 click,itsdangerous,Jinja2,MarkupSafe 和 Werkzeug 也会被 
下载到本地。 
pip3 install --download=`pwd` flask 
[root@mysql1 shell]# pip3 install --download=`pwd` flask 
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
DEPRECATION: pip install --download has been deprecated and will be removed in the future. Pip now has a download command that should be used instead.
Collecting flask
  Downloading https://files.pythonhosted.org/packages/cd/77/59df23681f4fd19b7cbbb5e92484d46ad587554f5d490f33ef907e456132/Flask-2.0.3-py3-none-any.whl (95kB)
    100% |████████████████████████████████| 102kB 111kB/s 
  Saved ./Flask-2.0.3-py3-none-any.whl
Collecting itsdangerous>=2.0 (from flask)
  Downloading https://files.pythonhosted.org/packages/9c/96/26f935afba9cd6140216da5add223a0c465b99d0f112b68a4ca426441019/itsdangerous-2.0.1-py3-none-any.whl
  Saved ./itsdangerous-2.0.1-py3-none-any.whl
Collecting Werkzeug>=2.0 (from flask)
  Downloading https://files.pythonhosted.org/packages/f4/f3/22afbdb20cc4654b10c98043414a14057cd27fdba9d4ae61cea596000ba2/Werkzeug-2.0.3-py3-none-any.whl (289kB)
    100% |████████████████████████████████| 296kB 16kB/s 
  Saved ./Werkzeug-2.0.3-py3-none-any.whl
Collecting click>=7.1.2 (from flask)
  Downloading https://files.pythonhosted.org/packages/4a/a8/0b2ced25639fb20cc1c9784de90a8c25f9504a7f18cd8b5397bd61696d7d/click-8.0.4-py3-none-any.whl (97kB)
    100% |████████████████████████████████| 102kB 13kB/s 
  Saved ./click-8.0.4-py3-none-any.whl
Collecting Jinja2>=3.0 (from flask)
  Downloading https://files.pythonhosted.org/packages/20/9a/e5d9ec41927401e41aea8af6d16e78b5e612bca4699d417f646a9610a076/Jinja2-3.0.3-py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 15kB/s 
  Saved ./Jinja2-3.0.3-py3-none-any.whl
Collecting dataclasses; python_version < "3.7" (from Werkzeug>=2.0->flask)
  Downloading https://files.pythonhosted.org/packages/fe/ca/75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/dataclasses-0.8-py3-none-any.whl
  Saved ./dataclasses-0.8-py3-none-any.whl
Collecting importlib-metadata; python_version < "3.8" (from click>=7.1.2->flask)
  Downloading https://files.pythonhosted.org/packages/a0/a1/b153a0a4caf7a7e3f15c2cd56c7702e2cf3d89b1b359d1f1c5e59d68f4ce/importlib_metadata-4.8.3-py3-none-any.whl
  Saved ./importlib_metadata-4.8.3-py3-none-any.whl
Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->flask)
  Downloading https://files.pythonhosted.org/packages/fc/d6/57f9a97e56447a1e340f8574836d3b636e2c14de304943836bd645fa9c7e/MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl
  Saved ./MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl
Collecting zipp>=0.5 (from importlib-metadata; python_version < "3.8"->click>=7.1.2->flask)
  Downloading https://files.pythonhosted.org/packages/bd/df/d4a4974a3e3957fd1c1fa3082366d7fff6e428ddb55f074bf64876f8e8ad/zipp-3.6.0-py3-none-any.whl
  Saved ./zipp-3.6.0-py3-none-any.whl
Collecting typing-extensions>=3.6.4; python_version < "3.8" (from importlib-metadata; python_version < "3.8"->click>=7.1.2->flask)
  Downloading https://files.pythonhosted.org/packages/45/6b/44f7f8f1e110027cf88956b59f2fad776cca7e1704396d043f89effd3a0e/typing_extensions-4.1.1-py3-none-any.whl
  Saved ./typing_extensions-4.1.1-py3-none-any.whl
Successfully downloaded flask itsdangerous Werkzeug click Jinja2 dataclasses importlib-metadata MarkupSafe zipp typing-extensions


[root@mysql1 shell]# ll
total 744
-rw-r--r-- 1 root root  97486 Aug 10 18:48 click-8.0.4-py3-none-any.whl
-rw-r--r-- 1 root root  19041 Aug 10 18:48 dataclasses-0.8-py3-none-any.whl
-rw-r--r-- 1 root root    558 Aug 10 17:52 dfkjsdklfjsdlkjfdksjf
-rw-r--r-- 1 root root  95575 Aug 10 18:47 Flask-2.0.3-py3-none-any.whl
-rw-r--r-- 1 root root  17978 Aug 10 18:48 importlib_metadata-4.8.3-py3-none-any.whl
-rw-r--r-- 1 root root  18326 Aug 10 18:47 itsdangerous-2.0.1-py3-none-any.whl
-rw-r--r-- 1 root root 133630 Aug 10 18:48 Jinja2-3.0.3-py3-none-any.whl
-rw-r--r-- 1 root root  30215 Aug 10 18:49 MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl
-rw-r--r-- 1 root root  26844 Aug 10 18:49 typing_extensions-4.1.1-py3-none-any.whl
-rw-r--r-- 1 root root 289232 Aug 10 18:48 Werkzeug-2.0.3-py3-none-any.whl
-rw-r--r-- 1 root root   5313 Aug 10 18:49 zipp-3.6.0-py3-none-any.whl

4.windows pycharm 开发工具。

pycharm的功能:
代码补全
代码高亮 
项目管理 
智能提示
代码风格检查 
集成单元测试 
集成版本控制工具 
图形界面调试 
方便的重构工具
快捷键支持 
大量的插件 

5.python shell 

python shell的缺点 
没有语法高亮 
不支持tab自动补全
没有自动缩进功能
不能保存历史记录 
不能很好的与操作系统交互
无法导入外部文件中的程序。

IPython,增强版本的 Python shell; 
IPython 的功能:
语法高亮 
自动缩进
Tab 补全 
快速获取帮助信息
搜索历史 
执行shell 命令。

6.pdb python 调试器

pdb: 功能: 
设置断点 
单步调试 
查看源码 
查看程序堆栈 

pdb 类似 GDB 调试命令。常用的语法有:
break ,缩写 b,设置断点。
continue,cont/c ,继续执行下一个断点。
next,n,执行下一行,如果下一行是子程序,不会进入子程序。
step,s:执行下一行,如果下一行是子程序,会进入子程序。
where,bt/w,打印堆栈轨迹。
enable,启用禁用的断点 
disable,禁用启用的断点
pp/p,打印变量或表达式。
list,l,根据参数值打印源码。
up,u,移动到上一层堆栈。
down,d,移动到下一层堆栈。
restart,run,重新开始调试。
args,a 打印函数参数。
clear,cl,清除所有断点。
return,r,执行到当前函数结束。

--启用调试器的两种方法。
(1)启用调试器
--写入需要调试的程序的名称。 
python -m pdb test_pdb.py 

(2)使用 pdb 模块的 set_trace 方法设置断点。
当程序运行到断点时,将会暂停执行并打开pdb调试器。

vi jisuan.py 
#/usr/bin/python  
from __future__ import print_function 
import pdb 
def sum_nums(n):
    s=0 
    for i in range(n):
        pdb.set_trace()
        s += i 
        print(s)
if __name__ == '__main__':
    sum_nums(5)

7.开源的 ipdb 

ipdb 是开一个开源的python调试器,和 pdb有相同的接口。
ipdb 具有句法高亮,tab 补全,更友好的堆栈信息等高级功能。

--安装 ipdb 
[root@mysql1 shell]# pip3 install ipdb
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting ipdb
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)",)': /simple/ipdb/
  Downloading https://files.pythonhosted.org/packages/0c/4c/b075da0092003d9a55cf2ecc1cae9384a1ca4f650d51b00fc59875fe76f6/ipdb-0.13.13-py3-none-any.whl
Requirement already satisfied: ipython<7.17.0,>=7.16.3; python_version == "3.6" in /usr/local/lib/python3.6/site-packages (from ipdb)
Requirement already satisfied: decorator; python_version == "3.6" in /usr/local/lib/python3.6/site-packages (from ipdb)
Collecting tomli; python_version == "3.6" (from ipdb)
  Downloading https://files.pythonhosted.org/packages/05/e4/74f9440db36734d7ba83c574c1e7024009ce849208a41f90e94a134dc6d1/tomli-1.2.3-py3-none-any.whl
Requirement already satisfied: jedi<=0.17.2,>=0.10 in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: pygments in /usr/local/lib64/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: setuptools>=18.5 in /usr/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: pexpect; sys_platform != "win32" in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: backcall in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/site-packages (from ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: parso<0.8.0,>=0.7.0 in /usr/local/lib/python3.6/site-packages (from jedi<=0.17.2,>=0.10->ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/site-packages (from pexpect; sys_platform != "win32"->ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/site-packages (from traitlets>=4.2->ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Requirement already satisfied: six in /usr/local/lib/python3.6/site-packages (from traitlets>=4.2->ipython<7.17.0,>=7.16.3; python_version == "3.6"->ipdb)
Installing collected packages: tomli, ipdb
Successfully installed ipdb-0.13.13 tomli-1.2.3

--ipdb python 断点工具的使用。
vi jisuan2.py 
#/usr/bin/python  
from __future__ import print_function 
import pdb 
def sum_nums(n):
    s=0 
    for i in range(n):
        ipdb.set_trace()
        s += i 
        print(s)
if __name__ == '__main__':
    sum_nums(5)

[root@mysql1 shell]# python3 jisuan2.py 
> /root/shell/jisuan2.py(8)sum_nums()
      7         ipdb.set_trace()
----> 8         s += i
      9         print(s)

ipdb> list
      3 import ipdb
      4 def sum_nums(n):
      5     s=0
      6     for i in range(n):
      7         ipdb.set_trace()
----> 8         s += i
      9         print(s)
     10 if __name__ == '__main__':
     11     sum_nums(5)
ipdb> c
0
> /root/shell/jisuan2.py(7)sum_nums()
      6     for i in range(n):
----> 7         ipdb.set_trace()
      8         s += i

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值