手记

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

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

0人推荐
随时随地看视频
慕课网APP