zoukankan      html  css  js  c++  java
  • 部署一个Python爬虫环境(二)-ubuntu版_探索篇

    一,部署环境及安装包

    1.python3.7

    2.Python 包安装和管理工具pip

    3.代理/抓包工具Mitmproxy 

    4.传输和存储数据工具protobuf 

    二,操作:

    1.python3.7

     手动部署——Ubuntu部署python3.7的开发和运行环境 注:能apt-get install python3.7,绝不手动wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

    (1)下载python(官网指定平台下的python3.7.1环境)(我劝大家看到三再操作)

    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

    (2)解压

    tar -xvzf Python-3.7.1.tgz

    (3)安装

    cd Python-3.7.1;
    ./configure --with-ssl --prefix=/usr/local/python3

      出现下面的错误:

    configure: WARNING: unrecognized options: --with-ssl
    checking build system type... x86_64-pc-linux-gnu
    checking host system type... x86_64-pc-linux-gnu
    checking for python3.7... no
    checking for python3... python3
    checking for --enable-universalsdk... no
    checking for --with-universal-archs... no
    checking MACHDEP... checking for --without-gcc... no
    checking for --with-icc... no
    checking for gcc... no
    checking for cc... no
    checking for cl.exe... no
    configure: error: in `/usr/local/Python-3.7.1':
    configure: error: no acceptable C compiler found in $PATH

      这是没有c编译器的错误,解决方法为安装gcc,对策:

    sudo apt-get install gcc  #执笔小白
    不行的话,先输入sudo apt-get update更新下,再不行就换下apkg源

    (4)编译和安装

    make  #可能需要安装mack,命令是:apt-get install make  #执笔小白
    make install

    (5) 建立虚拟环境

      使用python开发环境的时候,一般建立在虚拟环境,这样可以形成项目运行环境的隔离,防止不同依赖的项目的干扰。进入到当前用户Home目录后,直接运行:

    python3 -m venv py3venv  --without-pi

    注意:pyvenv脚本在3.7.1之后的版本中逐渐废弃,鼓励使用python3 -m venv,这样可以避免搞错pyvenv所关联的版本。如果提示没有找到 venv 命令,则安装:sudo apt install python3-venv。

      经过上述操作,即可创建一份克隆有python3.7.1的虚拟环境,然后激活虚拟环境:

    source ./py3venv/bin/activate

    即可使当前终端环境变成python3.7.1的环境,看到终端前辍带有py3venv表明已经成功:

    (py3venv) root@Server:~#

    然后输入命令python,就可以看到进入到python3.7.1的运行界面:

    (py3venv) root@Server:~# python
    Python 3.4.3 (default, Oct 14 2015, 20:28:29)  
    [GCC 4.8.4] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

      我擦,Python 3.4.3;别慌,输入exit()退出python环境。输入deactivate关闭虚拟环境

      对策(*这里先不要操作,一直看到安装pip

      a)查看系统安装了的python版本

    #查看版本
    $python3 --version

        Python 3.4.3

    $python --version

        --version:未找到命令

     $python2 --version
        Python 2.7.6

    上面我们看到python3 对应 Python 3.4.3,python2 对应 Python 2.7.6;我们现在不能使用 Python 3.7.1版本。

      b)然后我查到这些命令都在/usr/bin目录里。

    #我们可以把Python 3.7.1对应的执行命令加到/usr/bin目录,命名为 Python3xb --xb小白
    sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3xb  #执笔小白

      c)检验我们创建的版本

     $python3xb --version  #执笔小白
          Python 3.7.1

       d)重新克隆python3xb到虚拟环境

    python3xb -m venv py3xbvenv  --without-pip

      e)激活虚拟环境

    source ./py3xbvenv/bin/activate

      f)查看python版本

    (py3xbvenv) root@Server:~# python
    Python 3.7.1 (default, Feb  2 2021, 17:28:11)
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

      ok,终于正常了

    二,安装pip

    在py3xbvenv虚拟环境下面执行:

    #这里我们不用apt-get install python-pip来安装pip,使用下面的命令:
    curl https://bootstrap.pypa.io/get-pip.py|python 

      问题一:

    找不到curl命令
    #对策:退出虚拟环境安装curl,命令是: 
    apt-get install curl

      问题二:

    #问题如下:
    Traceback (most recent call last):
    File "<stdin>", line 24244, in <module>
    File "<stdin>", line 199, in main
    File "<stdin>", line 82, in bootstrap
    zipimport.ZipImportError: can't decompress data; zlib not available

    #找不到解压软件,对策:退出虚拟环境安装zlib
    sudo apt-get install zlib* #可能需要apt-get -f instal修复不兼容的包
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev  libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev   xz-utils tk-dev
    这里确实安装了zlib包,但并没有解决问题二;于是我又查了“python问题 Traceback (most recent call last)”
    详细的错误请参照https://blog.csdn.net/weixin_43978056/article/details/105940157
    页没有解决问题,我在想可能是python3xb的事,这可能涉及到太多类库的部署,单靠把/usr/bin/下的

    python3xb改为python3风险太大。
    这里我们先使用Python 3.4.3,下次遇到再研究这个问题。

    尝试在Python 3.4.3安装pip

    source ./py3venv/bin/activate

    curl https://bootstrap.pypa.io/get-pip.py|python

      又遇到问题:

    Traceback (most recent call last):
      File "<stdin>", line 24244, in <module>
      File "<stdin>", line 199, in main
      File "<stdin>", line 82, in bootstrap
      File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
      File "<frozen importlib._bootstrap>", line 2222, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 2164, in _find_spec
      File "<frozen importlib._bootstrap>", line 1940, in find_spec
      File "<frozen importlib._bootstrap>", line 1916, in _get_spec
      File "<frozen importlib._bootstrap>", line 1897, in _legacy_get_spec
      File "<frozen importlib._bootstrap>", line 863, in spec_from_loader
      File "<frozen importlib._bootstrap>", line 904, in spec_from_file_location
      File "/tmp/tmp7uauuj1w/pip.zip/pip/_internal/cli/main.py", line 60
      sys.stderr.write(f"ERROR: {exc}")
                                       ^
    SyntaxError: invalid syntax
    查到是“SyntaxError: invalid syntax” 的意思就是 语法错误;

    大哥,我错了!换实体机吧。
    sudo apt install python3-pip

    然后,查看pip3版本

    root@Server:~# pip3 --version
    pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
    python3.5,不是Python 3.4.3了,真难受,它还升级了。。。,无所谓pip3到此可以用了,成功。

    这里不要升级pip

    给我经验就是能apt-get install python3.7,绝不手动wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
    (看到这里。。。)
    补充:
     a)pip3所在的文件夹:/usr/local/bin;
    b)升级了某些东西和升级了'pip install --upgrade pip',又搞坏了pip
    报错:
    Traceback (most recent call last): File "/usr/local/bin/pip", line 7, in <module> from pip._internal.cli.main import main ImportError: No module named _internal.cli.main
    对策一:
    https://blog.csdn.net/weixin_42069606/article/details/104914037
    结论不好使,

     

    
    

     对策二:https://www.pianshen.com/article/49071444786/

      运行:easy_install pip #简易安装

      终于正常了

     对策三:https://www.baidu.com/link?url=yzU50y3ixAj6V_qZ_WbFUrDsM2EiRuIEa0iOsLyCpNqdZdI5joBqkm8G8eaPjaIy3xfvs_cpaKvWWIDMAY_DQK&wd=&eqid=de51b5690004a87a00000002601a8087(这个感觉靠谱,就是没给我试的机会

    ‘b)’的结果如下

    虚拟环境
    (py3venv) root@XServer:~# pip --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) (py3venv) root@Server:~# pip2 --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) (py3venv) root@Server:~# pip3 --version -bash: /usr/local/bin/pip3: 没有那个文件或目录 (py3venv) root@Server:~# pip3.5 --version Traceback (most recent call last): File "/usr/local/bin/pip3.5", line 7, in <module> from pip._internal.cli.main import main File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/main.py", line 60 sys.stderr.write(f"ERROR: {exc}")
    实体机:


    root@Server:~# pip --version
    pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    root@Server:~# pip2 --version
    pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    root@Server:~# pip2.7 --version
    pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
    root@Server:~# pip3.5 --version
    Traceback (most recent call last):
    File "/usr/local/bin/pip3.5", line 7, in <module>
    from pip._internal.cli.main import main
    File "/usr/local/lib/python3.5/dist-packages/pip/_internal/cli/main.py", line 60
    sys.stderr.write(f"ERROR: {exc}")
    ^
    SyntaxError: invalid syntax

    
    
    得。又得用python2.8了。
    三,安装mitmproxy
     pip install mitmproxy
    
    

    报错:

    You are using pip version 8.1.1, however version 21.0.1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command

    呵呵,不安python3.7不行了。。

    ==================================

    重新来过——https://blog.csdn.net/weixin_43256057/article/details/94555177

       先省略。。。



    365个夜晚,我希望做到两天更一篇博客。加油,小白!
  • 相关阅读:
    SCRUM站立会议
    燃尽图
    第一次作业----词频统计
    构建之法读感
    final 评论 II
    final 评论 I
    第十一周PSP
    学期回顾
    第十周PSP
    Gradle学习笔记
  • 原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/14362876.html
Copyright © 2011-2022 走看看