Python3配置和入坑.md
[TOC]
0x00 基础配置
IDLE 快捷键
ALT + p #上一次执行的命令
(1)Python Shell 清屏方法
- 针对Python命令行 os.system(‘cls’)
- 针对IDLE Shell命令行 ctrl + l
"""
Clear Window Extension
Add these lines to config-extensions.def
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>
"""
class ClearWindow:
menudefs = [
('options', [None,
('Clear Shell Window', '<<clear-window>>'),
]),]
def __init__(self, editwin):
self.editwin = editwin
self.text = self.editwin.text
self.text.bind("<<clear-window>>", self.clear_window2)
self.text.bind("<<undo>>", self.undo_event) # add="+" doesn't work
def undo_event(self, event):
text = self.text
text.mark_set("iomark2", "iomark")
text.mark_set("insert2", "insert")
self.editwin.undo.undo_event(event)
# fix iomark and insert
text.mark_set("iomark", "iomark2")
text.mark_set("insert", "insert2")
text.mark_unset("iomark2")
text.mark_unset("insert2")
def clear_window2(self, event): # Alternative method
# work around the ModifiedUndoDelegator
text = self.text
text.undo_block_start()
text.mark_set("iomark2", "iomark")
text.mark_set("iomark", 1.0)
text.delete(1.0, "iomark2 linestart")
text.mark_set("iomark", "iomark2")
text.mark_unset("iomark2")
text.undo_block_stop()
if self.text.compare('insert', '<', 'iomark'):
self.text.mark_set('insert', 'end-1c')
self.editwin.set_line_and_column()
def clear_window(self, event):
# remove undo delegator
undo = self.editwin.undo
self.editwin.per.removefilter(undo)
# clear the window, but preserve current command
self.text.delete(1.0, "iomark linestart")
if self.text.compare('insert', '<', 'iomark'):
self.text.mark_set('insert', 'end-1c')
self.editwin.set_line_and_column()
# restore undo delegator
self.editwin.per.insertfilter(undo)
(2)Python 多版本共存 我常用的方式就是一个加入PATH之中,另外一个版本不加入python之中;但是痛苦在于每次执行需要指定绝对路径,且进行pip下载的时候也需要在指定目录执行; 解决方法:
#Python 自带的解决方法
当安装python2.7以后直接调用 pip 执行的是 Python2.7 的 pip,如何解决?
pip3 install xxxx
py -3 -m pip install xxxx
#问题1:win10以下设置右键点击“Edit with IDLE”选项打开的 Python 版本。
#解决方案:
1. 在运行处输入 regedit 进入注册表;
2. 找到项[HKEY_CLASSES_ROOTPython.FileshellEdit with IDLEcommand]
3. 双击(默认),将值改为:"C:Python34pythonw.exe" "C:Python34Libidlelibidle.pyw" -e "%1" 即可
#问题2:如何指定双击打开 .py 文件的程序?
#解决方案:这时候通过修改“属性”的“打开方式”一般是没用的,因为Python特别任性,没办法......
#还是需要通过修改注册表解决。
1. 在运行处输入regedit进入注册表;
2. 找到项[HKEY_CLASSES_ROOTPython.Fileshellopencommand]
3. 双击(默认),将值改为: "C:Python34python.exe" "%1" %* 即可(这里我希望双击以 Python3.4 打开)。
4. 同时将 C:Python34;C:Python34Scripts 添加到环境变量中(右键“这台电脑”->“高级系统设置”->“环境变量(N)...”,修改用户环境变量的 PATH 变量即可)。
#问题3:如果你的系统中同时存在 Python2.7 和 Python3.4,那么在命令行模式下输入 Python,默认是执行 Python2.7:
#因为 Python 在命令行模式下本身就是设置两者可以兼容
$ python
$ py -3
C:UsersAdministrator>py -2
Python 2 not found!
Installed Pythons found by py Launcher for Windows
-3.7-64 *
#追加技能:
当我的代码需要使用 Python2.7 时,则通过鼠标右键选择执行。
在注册表:HKEY_CLASSES_ROOTPython.Fileshell 中新建项“通过 Python2.7运行”,再新建项“command”,设置默认值为:"C:Python27python.exe" "%1" %* 即可
WeiyiGeek.右键打开
0x01 pip 命令
python 依赖库建议使用pip进行管理,如过没有安装pip可执行如下命令进行安装:
#Python环境通用
wget https://sec.ly.com/mirror/get-pip.py --no-check-certificate && python get-pip.py
#Ubuntu、Kail测试
apt-get install python-pip
apt-get install python-setuptools
easy_install pip
pip gevent --upgrade
pip install --upgrade pip
#注:如果最后一步出错执行
[email protected]:pip install setuptools --no-use-wheel --upgrade
问题1:安装模块C++运行库报错
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/ Python 2.7需要Microsoft Visual C++ 9.0的库 Python 3.6需要Microsoft Visual C++ 14.0的库
0x02 入坑
Q问题1:centos下安装pip时失败的解决方法?
#解决方法1:先安装扩展源EPEL,EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
#首先安装epel扩展源:
$ sudo yum -y install epel-release
#然后再安装pip
$ sudo yum -y install python-pip
#解决方法2:如过没有安装pip, 可执行如下命令进行安装:
wget https://sec.ly.com/mirror/get-pip.py --no-check-certificate && python get-pip.py
#更新到pip最新版本:
$ pip install -U pip
$ python -m pip install --upgrade pip
Q问题:输入pip命令报错:from pip import main ImportError: cannot import name ‘main’ 原因:由于在ubuntu 16.04上升级pip版本后导致的: 报错如下:
workspace> pip
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name main
修复流程:
#若在只读权限下强制保存会导致文件受损,建议修改配置文件时先查看是否具有权限
$vim /usr/bin/pip
from pip import __main__ #这行也要修改
if __name__ == '__main__':
sys.exit(__main__._main())#增加__main__._
#最后保存查看
workspace> pip -V
pip 19.1.1 from /home/coding/.local/lib/python2.7/site-packages/pip (python 2.7)
Q问题:安装BeautifulSoup失败 原因分析:
- 1)可能是PIP版本过低造成安装不成功,目前使用版本10.0.1,已有最新版本18.1;
- 2)也可能是安装包不对,需要使用BeautifulSoup4的包进行安装,不升级PIP的情况下,进行安装BeautifulSoup4包成功。
问题1:采用pip3安装Certbot出错 问题描述:
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/cryptography
Storing debug log for failure in /root/.pip/pip.log
解决办法:
easy_install -U setuptools
sudo pip3 install certbot
问题2: setuptools版本太老导致依赖无法下载 问题描述:
RuntimeError: cryptography requires setuptools 18.5 or newer, please upgrade to a newer version of setuptool
解决办法:
pip install --upgrade setuptools
pip 命令
pip list # 查看所有依赖包
pip freeze # 查看虚拟环境新安装得包
pip install xxx # 安装xxx依赖包
pip安装模块之pypi镜像加速配置
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 默认使用
# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置/
pip install pip -U
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U # 如果上面升级连接的默认源网络连接较差,临时使用本条命令来升级 pip;
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# Writing to C:UsersWeiyiGeekAppDataRoamingpippip.ini
问题1.执行pip命令出现ModuleNotFoundError: No module named ‘pip’错误 问题原因:系统中没有安装pip模块 解决办法:
python -m ensurepip
python -m pip install --upgrade pip
- Docker系列教程08-Dockerfile实战
- VirtualBox和Vmware安装增强功能
- 事件委托与阻止冒泡
- Linux网络工具之Ping命令
- Linux DNS之nslookup命令
- 【LEETCODE】模拟面试-108-Convert Sorted Array to Binary Search Tree
- javascript单线程环境实现真正的setTimeout
- 利用pipework与OVS构建跨主机容器网络
- Docker系列教程07-Dockerfile指令详解
- Docker系列教程06-实战:修改Nginx首页
- prompt() 方法,弹框带输入框
- Docker系列教程05-容器常用命令
- 数据分析利器-NumPy
- 【LEETCODE】模拟面试-134-Gas Station
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP实现文字写入图片功能
- php中file_get_contents()函数用法实例
- PHP通过GD库实现验证码功能示例
- Thinkphp 5.0实现微信企业付款到零钱
- 使用npy转image图像并保存的实例
- php实现有序数组旋转后寻找最小值方法
- 基于python实现音乐播放器代码实例
- PHP实现微信对账单处理
- Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
- PHP Include文件实例讲解
- ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
- Python Switch Case三种实现方法代码实例
- PHP正则表达式笔记与实例详解
- php实现微信分享朋友链接功能
- python交互模式基础知识点学习