Python语言所遇到的坑
小标 2018-10-09 来源 : 阅读 2249 评论 0

摘要:本文主要向大家介绍了Python语言所遇到的坑,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言所遇到的坑,通过具体的内容向大家展示,希望对大家学习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
  - //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
  - //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: //[username]:[password]@[server]:[port]
proxy_servers:
    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                     
seaborn                   0.8.1            py36hfad7ec4_0    defaults
send2trash                1.4.2                    py36_0    defaults
service-identity          17.0.0                    
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=
                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=
            SSL_CERT_FILE=
               WINDOWPATH=1
                ftp_proxy=
               http_proxy=
              https_proxy=
              socks_proxy=

     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 
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(': 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= "//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 

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程