• python所遇到的坑


    我是在ubuntu中,自带的有python2,python3有安装了anaconda套件,所以python的版本很多,曾经想删除过不用的python.

    先执行

    sudo apt remove python*

    在想安装anaconda,结果悲剧了,xorg没有了,结果只能cmd玩耍了,一气之下重装ubuntu18系统了

    dflx@dflx:~$ ps -t tty1
      PID TTY          TIME CMD
     1889 tty1     00:00:00 gdm-x-session
     1891 tty1     00:11:38 Xorg
     2051 tty1     00:00:00 gnome-session-b
     2365 tty1     00:16:43 gnome-shell
     2520 tty1     00:00:00 ibus-daemon

    我的python情况

    dflx@dflx:~$ python
    python             python3            python3.6m         python3m
    python2            python3.6          python3.6m-config  python3m-config
    python2.7          python3.6-config   python3-config     

    python路径

    dflx@dflx:~$ whereis python
    python: /usr/bin/python2.7 
    /usr/bin/python3.6m-config 
    /usr/bin/python /usr/bin/python3.6
     /usr/bin/python3.6m 
    /usr/bin/python3.6-config 
    /usr/lib/python2.7 
    /usr/lib/python3.7 
    /usr/lib/python3.6 
    /etc/python2.7 
    /etc/python /etc/python3.6 /usr/local/lib/python2.7 /usr/local/lib/python3.6 /usr/include/python3.6 /usr/include/python3.6m /usr/share/python /home/dflx/anaconda3/bin/python3.6m-config /home/dflx/anaconda3/bin/python /home/dflx/anaconda3/bin/python3.6 /home/dflx/anaconda3/bin/python3.6m /home/dflx/anaconda3/bin/python3.6-config /usr/share/man/man1/python.1.gz
    dflx@dflx:~$ which python
    /home/dflx/anaconda3/bin/python

    find查找命令
    find <指定目录> <指定条件> <指定动作>“;
    比如使用find命令,搜索在根目录下的所有condarc文件[anaconda源配置文件]所在位置,命令格式为find / -name "condarc"

    
    dflx@dflx:~$ find  / -name "condarc"
    find: ‘/tmp/systemd-private-f3c0644e26174362bd722c3ae1177b11-systemd-timesyncd.service-58avLb’: 权限不够
    find: ‘/tmp/systemd-private-f3c0644e26174362bd722c3ae1177b11-bolt.service-lPkFIh’: 权限不够
    find: ‘/tmp/vmware-root’: 权限不够
    find: ‘/tmp/pulse-PKdhtXMmr18n’: 权限不够
    find: ‘/tmp/systemd-private-f3c0644e26174362bd722c3ae1177b11-colord.service-vIICqI’: 权限不够
    /home/dflx/anaconda3/pkgs/conda-4.4.10-py36_0/info/test/tests/condarc
    /home/dflx/anaconda3/pkgs/conda-4.5.4-py36_0/info/test/tests/condarc

    cat 查看

    dflx@dflx:~$ cat /home/dflx/anaconda3/pkgs/conda-4.4.10-py36_0/info/test/tests/condarc
    # This is a sample .condarc file
    
    # channel locations. These override conda defaults, i.e., conda will
    # search *only* the channels listed here, in the order given. Use "defaults" to
    # automatically include all default channels. Non-url channels will be
    # interpreted as binstar usernames (this can be changed by modifying the
    # channel_alias key; see below).
    channels:
      - binstar_username
      - http://some.custom/channel
      - defaults
    
    # Alias to use for non-url channels used with the -c flag. Default is https://conda.binstar.org/
    
    ............

    查看另外一个

    dflx@dflx:~$ cat /home/dflx/anaconda3/pkgs/conda-4.5.4-py36_0/info/test/tests/condarc
    # This is a sample .condarc file
    
    # channel locations. These override conda defaults, i.e., conda will
    # search *only* the channels listed here, in the order given. Use "defaults" to
    # automatically include all default channels. Non-url channels will be
    # interpreted as binstar usernames (this can be changed by modifying the
    # channel_alias key; see below).
    channels:
      - binstar_username
      - http://some.custom/channel
      - defaults
    
    # Alias to use for non-url channels used with the -c flag. Default is https://conda.binstar.org/
    
    channel_alias: https://your.repo/
    
    # Proxy settings: http://[username]:[password]@[server]:[port]
    proxy_servers:
        http: http://user:pass@corp.com:8080
        https: https://user:pass@corp.com:8080

    查看源url

    dflx@dflx:~$ conda config --show
    add_anaconda_token: True
    add_pip_as_python_dependency: True
    aggressive_update_packages:
      - ca-certificates
      - certifi
      - openssl
    allow_non_channel_urls: False
    allow_softlinks: False
    always_copy: False
    always_softlink: False
    always_yes: None
    anaconda_upload: None
    auto_update_conda: True
    changeps1: True
    channel_alias: https://conda.anaconda.org
    channel_priority: True
    channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
      - defaults
      - conda-forge

    在就是配置了一下多环境,我把vscode配ubuntu本身的python环境.因为我的selenium包,怎么在conda都安装不上.

    dflx@dflx:~$ conda list 
    #只放了s 开头的包
    scikit-image              0.13.1           py36h14c3975_1    defaults
    scikit-learn              0.19.1           py36h7aa7ec6_0    defaults
    scipy                     1.0.0            py36hbf646e7_0    defaults
    Scrapy                    1.5.0                     <pip>
    seaborn                   0.8.1            py36hfad7ec4_0    defaults
    send2trash                1.4.2                    py36_0    defaults
    service-identity          17.0.0                    <pip>
    setuptools                38.4.0                   py36_0    defaults
    simplegeneric             0.8.1                    py36_2    defaults
    singledispatch            3.4.0.3          py36h7a266c3_0    defaults
    sip                       4.18.1           py36h51ed4ed_2    defaults
    six                       1.11.0           py36h372c433_1    defaults
    snowballstemmer           1.2.1            py36h6febd40_0    defaults
    sortedcollections         0.5.3            py36h3c761f9_0    defaults
    sortedcontainers          1.5.9                    py36_0    defaults
    sphinx                    1.6.6                    py36_0    defaults
    sphinxcontrib             1.0              py36h6d0f590_1    defaults
    sphinxcontrib-websupport  1.0.1            py36hb5cb234_1    defaults
    spyder                    3.2.6                    py36_0    defaults
    sqlalchemy                1.2.1            py36h14c3975_0    defaults
    sqlite                    3.22.0               h1bed415_0    defaults
    statsmodels               0.8.0            py36h8533d0b_0    defaults
    sympy                     1.1.1            py36hc6d1c1c_0    defaults
    tblib                    

    然而ubuntu自带的python包的情况如下

    dflx@dflx:~$ pip3 list
    DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
    requests-unixsocket (0.1.5)
    SecretStorage (2.3.1)
    selenium (3.12.0)
    setuptools (39.1.0)
    simplejson (3.15.0)
    six (1.11.0)
    system-service (0.3)
    systemd-python (234)
    traitlets (4.3.2)

    我anaconda安装selenium好像出错,我已经修改源的来源了.........

    dflx@dflx:~$ conda install selenium
    Solving environment: failed
    
    # >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
    
    `$ /home/dflx/anaconda3/bin/conda install selenium`
    
      environment variables:
                     CIO_TEST=<not set>
                    CLASSPATH=.::/opt/java/jdk-9.0.1/lib:/opt/java/jdk-9.0.1/jre/lib
                   CONDA_ROOT=/home/dflx/anaconda3
                DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
               MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
                         PATH=/home/dflx/anaconda3/bin:/home/dflx/.local/bin:/usr/local/sbin:/usr/lo
                              cal/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sna
                              p/bin:/opt/java/jdk-9.0.1/bin:/opt/java/jdk-9.0.1/jre/bin
           REQUESTS_CA_BUNDLE=<not set>
                SSL_CERT_FILE=<not set>
                   WINDOWPATH=1
                    ftp_proxy=<set>
                   http_proxy=<set>
                  https_proxy=<set>
                  socks_proxy=<set>
    
         active environment : None
           user config file : /home/dflx/.condarc
     populated config files : /home/dflx/.condarc
              conda version : 4.5.4
        conda-build version : 3.4.1
             python version : 3.6.4.final.0
           base environment : /home/dflx/anaconda3  (writable)
               channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/linux-64
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/noarch
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/linux-64
                              https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/noarch
              package cache : /home/dflx/anaconda3/pkgs
                              /home/dflx/.conda/pkgs
           envs directories : /home/dflx/anaconda3/envs
                              /home/dflx/.conda/envs
                   platform : linux-64
                 user-agent : conda/4.5.4 requests/2.18.4 CPython/3.6.4 Linux/4.15.0-23-generic ubuntu/18.10 glibc/2.27
                    UID:GID : 1000:1000
                 netrc file : None
               offline mode : False
    
    V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
    
    CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/linux-64/repodata.json>
    Elapsed: -
    
    An HTTP error occurred when trying to retrieve this URL.
    HTTP errors are often intermittent, and a simple retry will get you on your way.
    ProxyError(MaxRetryError("HTTPSConnectionPool(host='mirrors.tuna.tsinghua.edu.cn', port=443): Max retries exceeded with url: /anaconda/cloud/msys2/linux-64/repodata.json (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f693e9ef780>: Failed to establish a new connection: [Errno 111] Connection refused',)))",),)
    
    A reportable application error has occurred. Conda has prepared the above report.
    If submitted, this report will be used by core maintainers to improve
    future releases of conda.
    Would you like conda to send this report to the core maintainers?
    [y/N]: n
    
    No report sent. To permanently opt-out, use
    
        $ conda config --set report_errors false

    估计解决不了了,不折腾,采用自带python测试一下.

    终于找到bug了,应该是代理服务的鬼

    在使用wegt下载的时候发现的

    dflx@dflx:~$ wget https://bootstrap.pypa.io/get-pip.py
    --2018-06-22 16:37:01--  https://bootstrap.pypa.io/get-pip.py
    正在连接 127.0.0.1:8888... 失败:拒绝连接。

    使用netstat查看本地端口的使用情况

    dflx@dflx:~$ sudo netstat -ntpl
    激活Internet连接 (仅服务器)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:902             0.0.0.0:*               LISTEN      1865/vmware-authdla 
    tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      1313/mono           
    tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      762/systemd-resolve 
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      942/cupsd           
    tcp6       0      0 :::902                  :::*                    LISTEN      1865/vmware-authdla 
    tcp6       0      0 ::1:631                 :::*                    LISTEN      942/cupsd      

    发现并没有服务在占用端口8888

    查看本地网络是否走了代理服务

    dflx@dflx:~$ export | grep -i prox
    declare -x ftp_proxy=""
    declare -x http_proxy="127.0.0.1:8888"
    declare -x https_proxy="127.0.0.1:8888"
    declare -x socks_proxy=""

    在找到了被占用的端口的8888, 确实是走了代理,于是问题找到了。

    关闭服务

    dflx@dflx:~$ unset https_proxy
    dflx@dflx:~$ export | grep -i prox
    declare -x ftp_proxy=""
    declare -x http_proxy="127.0.0.1:8888"
    declare -x socks_proxy=""

    测试selenium,可以使用

    from selenium import webdriver
    req_url= "http://www.haosou.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=python"
    browser= webdriver.Firefox()
    browser.get(req_url)

    vscode控制带的结果 厦门叉车市场

    dflx@dflx:~/文档/python$ cd /home/dflx/文档/python ; 
    env "PYTHONIOENCODING=UTF-8" "PYTHONUNBUFFERED=1" /usr/bin/python3m /home/dflx/.vscode/extensions/ms-python.python-2018.6.0/pythonFiles/PythonTools/visualstudio_py_launcher.py 
    /home/dflx/文档/python 42367 34806ad9-833a-4524-8cd6-18ca4aa74f14 
    RedirectOutput,RedirectOutput /home/dflx/文档/python/bloy.py

    2018-06-22 12-38-02屏幕截图.png

    参考文章
    Linux下怎样搜索文件
    CondaHTTPError: HTTP 000 CONNECTION FAILED for url
    wget 正在连接 127.0.0.1:36627... 失败:拒绝连接

  • 相关阅读:
    2018软件工程第七次作业(团队二)
    2018软件工程第六次作业(团队一)
    2018软件工程第五次作业(结对二)
    2018软件工程第四次作业(结对一)
    2018软件工程第三次作业(个人三)
    2018软件工程第二次作业(个人二)
    2018软件工程第一次作业(个人一)
    Serializable与transient的联合使用:动态管理成员属性——《Thinking in Java》随笔033
    transient关键字的应用——《Thinking in Java》随笔032
    Serializable:用于保存及还原对象——《Thinking in Java》随笔031
  • 原文地址:https://www.cnblogs.com/xyou/p/9222695.html
Copyright © 2020-2023  润新知