• python之pip


    一、pip安装第三方库

      python之所以强大,就是因为它有丰富的第三方库。python官方维护了一个库系统,我们不需要去找链接去下载第三方库,只需要用一条指定的命令就可完成我们的安装。常用的pip命令如下

    1. pip install django         # 安装django,若原先已经安装了django,则先卸载再安装
    2. pip install django==1.8.2   # 安装django1.8.2版本,这是项目常用的命令
    3. pip download django     # 先下载django,下次安装不会重新下载,会从缓存安装
    4. pip list    # 列出已经安装的库
    5. pip list --ourdated    # 列出不是最新的库
    6. pip install -U/--upgrade django   # 更新django
    7. pip install -i https://pypi.doubanio.com/simple/ django  # 通过豆瓣的源来安装
    8. pip show django     # 展示django的信息
    9. pip search django     # 去互联网搜索带django字符串的包(模糊匹配)
    10. pip uninstall django      # 卸载django

      pip 安装的时候一般先搜索whl包(一种已经编译过的包),找不到whl包再搜索压缩包进行安装。

      装有python3.x版本的windows中的scripts文件夹放有pip等程序,Lib中存放所有的库

      注:更新pip源  python -m pip install --upgrade pip 

    二、virtualenv

      在Python的开发环境的最常用的方法是使用virtualenv包。virtualenv是一个用来创建独立的Python环境的包。

    1. 安装virtualenv       
    2. 创建环境         # virtualenv myenv
    3. source 目录/activite

    4. 通过pip安装环境所需

    5. deactivite退出环境

      注:可以通过-p选项指定环境依赖的python版本,如virtualenv -p python2 myenv

    三、JSON模块

       JSON(javascript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。因为javascript支持的基本数据类型比较少,所以我们python中的字典的数据类型到了javascript层面就是对象了。在javascript中,我们常常有这样的一个需求,就是把A地的一个对象转化为一个字符串,然后通过网络传到B地,最后在B地把接收到的字符串转化为对象。在python中,有这样一个模块,这个模块可以把接收到的json格式的字符串转化为javascript中的对象,而这个对象在python中对应字典格式,这样就可以取出我们需要的数据了。这个模块就是内置的json模块。json模块共有四种方法,dumps、loads、dump以及load。

     1 >>> import json
     2 >>> data = {'a':1,'b':2}
     3 >>> data1 = {'a':1,'b':2,}
     4 >>> data_json = json.dumps(data)
     5 >>> data_json
     6 '{"b": 2, "a": 1}'
     7 >>> data1_json = json.dumps(data1)
     8 >>> data1_json
     9 '{"b": 2, "a": 1}'
    10 >>> json.loads('{"b": 2, "a": 1}')
    11 {'b': 2, 'a': 1}
    12 >>> json.loads('{"b": 2, "a": 1,}')
    13 Traceback (most recent call last):
    14   File "<pyshell#8>", line 1, in <module>
    15     json.loads('{"b": 2, "a": 1,}')
    16   File "C:Python34libjson\__init__.py", line 318, in loads
    17     return _default_decoder.decode(s)
    18   File "C:Python34libjsondecoder.py", line 343, in decode
    19     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    20   File "C:Python34libjsondecoder.py", line 359, in raw_decode
    21     obj, end = self.scan_once(s, idx)
    22 ValueError: Expecting property name enclosed in double quotes: line 1 column 17 (char 16)
    23 >>> s = str(data)
    24 >>> s
    25 "{'b': 2, 'a': 1}"
    26 >>> json.loads(s)
    27 Traceback (most recent call last):
    28   File "<pyshell#11>", line 1, in <module>
    29     json.loads(s)
    30   File "C:Python34libjson\__init__.py", line 318, in loads
    31     return _default_decoder.decode(s)
    32   File "C:Python34libjsondecoder.py", line 343, in decode
    33     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    34   File "C:Python34libjsondecoder.py", line 359, in raw_decode
    35     obj, end = self.scan_once(s, idx)
    36 ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
    View Code
    1 >>> with open('text.txt') as f:
    2     data = json.load(f)
    3 >>> with open('text.txt','w') as f:
    4     json.dump(data,f)
    View Code
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 import json
     4 import requests
     5 url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link'
     6 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36',
     7            'X - Requested - With': 'XMLHttpRequest',}
     8 while 1:
     9     content = input('请输入要查询的单词或者中文[q退出]:').strip()
    10     if content == 'q':
    11         break
    12     data = {
    13         'type':'AUTO',
    14         'i':content,
    15         'doctype':'json',
    16         'xmlVersion':'1.8',
    17         'keyfrom':'fanyi.web',
    18         'ue':'UTF-8',
    19         'action':'FY_BY_ENTER',
    20         'typoResult':'true',
    21     }
    22     #recv_data = requests.post(url, headers=headers, data=data).content.decode('utf-8')
    23     recv_data = requests.post(url, headers=headers, data=data).text
    24     # json.loads()会自动去掉字符串中的空格
    25     recv_data = json.loads(recv_data)
    26     recv_data_dict = recv_data['smartResult']['entries']
    27     for data in recv_data_dict:
    28         if data:
    29             print(data)
    翻译器

      注:文本里的内容本身就是字符串,所以写在里面的json格式不需要加字符串。并且把对象作为json格式写到文件中时,文件的拓展名并没有强制规定是json.

          在ubantu中安装pip2的命令是sudo apt install python-pip,安装python2的命令是sudo apt install python-minimal。

            在ubantu中如果同时有pip,pip3,pip2,则用pip安装可能装在python2环境,也可能装在python3环境。我们可以通过pip -V/--version

        我们在使用sudo pip3 install 'django>=1.8.2'这条命令的时候,后面的版本必须加引号

        我们用sudo安装的东西都会安装在外面,因为sudo可以看作提权

        在虚拟环境中,用pip命令即可,不需要用pip2或者pip3,因为虚拟环境就只有一个python

  • 相关阅读:
    VIM常用操作
    计算机之二进制基础
    交换机安全学习笔记 第六章 IPV4 ARP攻击
    交换机安全学习笔记 第八章 针对POE的攻击
    交换机安全学习笔记 第九~十章 HSRP VRRP
    CSRF-DVWA_1.9-笔记
    命令注入-笔记
    暴力破解-H3C路由器-MSR900
    暴力破解-DVWA_1.9-笔记
    DVWA、 DSVM 环境搭建简述
  • 原文地址:https://www.cnblogs.com/longyunfeigu/p/6726157.html
Copyright © 2020-2023  润新知