一、环境准备。
pip -V执行2.7的pip
pip3 -V显示
C:\Users\shawn>pip3 -V
Fatal error in launcher: Unable to create process using '"'
处理:
C:\Users\shawn>python3 -m pip install -U pip
Collecting pip
Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 8.1.1
Uninstalling pip-8.1.1:
Successfully uninstalled pip-8.1.1
Successfully installed pip-8.1.2
二、课程资料 :
Python环境搭建
windows
Python环境搭建(Windows环境下)
Python下载
www.python.org官网
选择可执行文件( 64位3.5.2Windows x86-64 executable installer或32位3.5.2 Windows x86 executable installer)、(64位2.7.12 Windows x86-64 MSI installer或32位2.7.12 Windows x86 MSI installer)
Python安装,包括Python2和Python3。如何在本地配置双版本环境。引申到工作中的生产环境该怎么处理python版本问题。
推荐安装路径为C:\Python27和C:\Python35,因为如果路径有空格的话(C:\Program Files\Python35)pip可能会有问题.
比如:将C:\Python35\python.exe修改为python3.exe,C:\Python35\Scripts\pip.exe改为pip3.exe,如果已经有pip3.exe,就把pip.exe删除。
以后需要使用Python3的环境就在终端输入python3就行(输入python就是python2.7的环境),同理pip3就是使用python3的pip
上面改好之后pip可能会出问题(终端输入>pip3 报错如下:Fatal error in launcher: Unable to create process using '"'),需要升级一下对应的pip3(终端输入>python3 -m pip install -U pip)
关于pip的介绍,类似yum。以前旧版本的Python可能还要单独装pip,现在Python都是自带pip,无需单独安装pip。
环境变量的设置
计算机(我的电脑\此电脑)>右键>属性>高级系统设置>环境变量>系统变量 Centos7 python2和python3共存
注意事项:
1、非root帐号加上sudo
2、centos7自带Python 2.7.5是不能卸载的,很多系统级软件依赖这个 安装依赖
# yum -y groupinstall "Development tools"
# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 下载python3,我的是Python-3.4.2.tgz
# wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz
# mkdir /usr/local/python3
# tar -zxvf Python-3.4.2.tgz
# cd Python-3.4.2
# ./configure --prefix=/usr/local/python3
# make && make install
# ln -s /usr/local/python3/bin/python3 /usr/bin/python3 测试
查看版本
# python3
Python 3.4.2 (default, Jul 19 2016, 03:47:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 代码测试
在当前目录新建个python脚本hello.py
内容:
#!/usr/bin/python3
# 第一个注释
print ("Hello, Python3!")
执行
# python3 hello.py
Hello, Python3!
三、Pycharm使用秘籍
Pycharm基本使用 Pycharm的基本使用
在Pycharm下为你的Python项目配置Python解释器
Project:当前项目名>Project Interpreter>add Local
在Pycharm下创建Python文件、Python模块
File>New>Python File
File>New>Python Package
使用Pycharm安装Python第三方模块
Project:当前项目名>Project Interpreter>点击右侧绿色小加号
Pycharm基本设置,例如不使用tab、tab=4空格、字体、字体颜色、主题、脚本头设置、显示行号等。如何导出和导入自定义设置。
不使用tab、tab=4空格:Editor>Code Style>Python
字体、字体颜色:Edit>Colors & Fonts>Python
关闭自动更新:Appearance & Behavior>System Settings>Updates
脚本头设置:Edit>File and Code Templates>Python Script 注:其他类似
显示行号:Edit>General>Appearance>Show line numbers 注:2016.2默认显示行号
右侧竖线是PEP8的代码规范,提示一行不要超过120个字符
导出、导入你自定义的配置: File>Export Settings、Import Settings
常用快捷键,例如复制当前行、删除当前行、批量注释、缩进、查找和替换。
常用快捷键的查询和配置:Keymap
Ctrl + D:复制当前行
Ctrl + E:删除当前行
Shift + Enter:快速换行
Ctrl + /:快速注释(选中多行后可以批量注释)
Tab:缩进当前行(选中多行后可以批量缩进)
Shift + Tab:取消缩进(选中多行后可以批量取消缩进)
Ctrl + F:查找
Ctrl + H:替换
Pycharm安装插件,例如Markdown support、数据库支持插件等。
Plugins>Browse repositories(下方三个按钮中间那个)>搜索‘markdown support’>install
右上角View有三个选项可选,一般我们都用中间那个左侧编写,右侧实时预览
Git配置?
需要本地安装好Git
Version Control>Git
配置了Git等版本控制系统之后,可以很方便的diff查看文件的不用
常用操作指南。例如复制文件路径、在文件管理器中打开、快速定位、查看模块结构视图、tab批量换space、TODO的使用、Debug的使用。
复制文件路径:左侧文件列表右键选中的文件>Copy Path
在文件管理器中打开:右键选中的文件>往下找到Show In Explorer
快速定位:Ctrl + 某些内建模块之后,点击在源文件中展开
查看结构:IDE左侧边栏Structure 查看当前项目的结构
tab批量换space:Edit>Convert Indents
TODO的使用:# TODO 要记录的事情
Debug设置断点,直接点击行号与代码之间的空白处即可设置断点(视频里忘了说)
Tab页上右键>Move Right(Down),把当前Tab页移到窗口右边(下边),方便对比
文件中右键>Local History能够查看文件修改前后的对比
IDE右下角能看到一些有用的信息,光标当前在第几行的第几个字符、当前回车换行、当前编码类型、当前Git分支
IDE右侧边栏>Database
如何去掉烦人的波浪线?PEP8又是什么?
单独一行的注释:#+1空格+注释内容
代码后跟着的注释:2空格+#+1空格+注释内容
SSH Terminal: Default encoding:UTF-8
Settings>Tools>SSH Terminal>最后一行Default encoding:选择UTF-8
善用搜索!善用搜索!善用搜索!
遇到不懂问题,先自己搜索。这样才记得更牢!
推荐使用sogou英文搜索http://english.sogou.com/
课程资料
3.x无中文编码烦恼
四、pycharm使用进阶
Pycharm基本使用
1. Pycharm的基本使用
1. 在Pycharm下为你的Python项目配置Python解释器
1. Project:当前项目名>Project Interpreter>add Local
2. 在Pycharm下创建Python文件、Python模块
1. File>New>Python File
2. File>New>Python Package
3. 使用Pycharm安装Python第三方模块
1. Project:当前项目名>Project Interpreter>点击右侧绿色小加号,如图的地方可以加载第三方的库
如豆瓣、阿里的库等。
4. Pycharm基本设置,例如不使用tab、tab=4空格、字体、字体颜色、主题、脚
本头设置、显示行号等。如何导出和导入自定义设置。
1. 设置菜单字体大小:Appearance&Behavior>Appearance
勾选Override default fonts by (not recommended)
2. 设置Console&Terminal字体大小: Editor>Colors&Fonts>Console Font
3. 不使用tab、tab=4空格:Editor>Code Style>Python
4. 字体、字体颜色:Edit>Colors & Fonts>Python
5. 关闭自动更新:Appearance & Behavior>System Settings>Updates
6. 脚本头设置:Edit>File and Code Templates>Python Script 注:其他
类似
7. 显示行号:Edit>General>Appearance>Show line numbers 注:
2016.2默认显示行号
8. 右侧竖线是PEP8的代码规范,提示一行不要超过120个字符
9. 导出、导入你自定义的配置: File>Export Settings、Import Settings
5. 常用快捷键,例如复制当前行、删除当前行、批量注释、缩进、查找和替换。
1. 常用快捷键的查询和配置:Keymap
1. Ctrl + D:复制当前行
2. Ctrl + E:删除当前行
3. Shift + Enter:快速换行
4. Ctrl + /:快速注释(选中多行后可以批量注释)
5. Tab:缩进当前行(选中多行后可以批量缩进)
6. Shift + Tab:取消缩进(选中多行后可以批量取消缩进)
7. Ctrl + F:查找
8. Ctrl + H:替换
2. 设置快捷键
1. 设置修改字体大小的快捷键
6. Pycharm安装插件,例如Markdown support、数据库支持插件等。
1. Settings > Plugins >Browse repositories(下方三个按钮中间那个)>搜
索‘ markdown support ’> install
2. 右上角View有三个选项可选,一般我们都用中间那个左侧编写,右侧实
时预览
7. Git配置?
1. 需要本地安装好Git
2. Version Control>Git
3. 配置了Git等版本控制系统之后,可以很方便的diff查看文件的不用
4. 配置github
8. 常用操作指南。例如复制文件路径、在文件管理器中打开、快速定位、查看模
块结构视图、tab批量换space、TODO的使用、Debug的使用。
1. 复制文件路径:左侧文件列表右键选中的文件>Copy Path
2. 在文件管理器中打开:右键选中的文件>往下找到Show In Explorer
3. 快速定位:Ctrl + 某些内建模块之后,点击在源文件中展开
4. 查看结构:IDE左侧边栏Structure 查看当前项目的结构
5. tab批量换space:Edit>Convert Indents
6. TODO的使用:# TODO 要记录的事情
7. Debug设置断点,直接点击行号与代码之间的空白处即可设置断点
8. Tab页上右键>Move Right(Down),把当前Tab页移到窗口右边(下
边),方便对比
9. 文件中右键>Local History能够查看文件修改前后的对比
10. IDE右下角能看到一些有用的信息,光标当前在第几行的第几个字符、
当前回车换行、当前编码类型、当前Git分支
11. IDE右侧边栏>Database
9. 如何去掉烦人的波浪线?PEP8又是什么?
1. 单独一行的注释:#+1空格+注释内容
2. 代码后跟着的注释:2空格+#+1空格+注释内容
10. SSH Terminal: Default encoding:UTF-8
1. Settings>Tools>SSH Terminal>最后一行Default encoding:选择UTF-8
11. Live Templates(善用live templates提高开发效率)
1. Settings>Editor>Live Templates
12. 善用搜索!善用搜索!善用搜索!
1. 遇到不懂问题,先尝试自己解决。这样才记得更牢!
2. 推荐使用sogou英文搜索 http://english.sogou.com/
紫金葫芦 整理于2016-08-02,2016-12-11更新
五、其它配置(来自知乎问题(同时装了Python3和Python2,怎么用pip?)整理
链接:https://www.zhihu.com/question/21653286/answer/95532074
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
官方的解法是什么?
事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。
我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。
有关Python2和3的安装,可以参见Python部落(http://python.freelycode.com)-->影音学堂-->《0基础1小时,Python入门》的第一节。
如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它
py -2 hello.py
类似的,如果你想用Python3运行它,就这样
py -3 hello.py
去掉参数 -2/-3
每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行
#! python2
或者
#! python3
分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为
py hello.py
使用pip
当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:
py -2 -m pip install XXXX
-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成
py -3 -m pip install XXXX
#! python2 和 # coding: utf-8 哪个写在前面?
对于Python2用户还有另外一个困惑,Python2要在代码文件顶部增加一行说明,才能够在代码中使用中文。如果指明使用的Python版本也需要在文件顶部增加一行,那哪一行应该放在第一行呢?
#! python2 需要放在第一行,编码说明可以放在第二行。所以文件开头应该类似于:
#! python2
# coding: utf-8
有了这些技巧,Python2和Python3就可以愉快地在一起玩耍了~
链接:https://www.zhihu.com/question/21653286/answer/96834584
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
## 对于 Linux ##
sudo pip install sth
# 或者明确版本
sudo pip2 install sth
sudo pip3 install sth
## 对于 Windows NT ##
# 如果仅安装 python2
pip install sth
# 如果安装有 python3, 则需要明确 pip 版本
py -2 -m pip install sth
py -3 -m pip install sth
== update, 针对 Linux ==
在 pip, pip2, 或者 pip3 install 失败时,可以尝试如下操作:
# 以安装 youtube-dl 举例, proxy_host:proxy_port 为代理地址
export https_proxy=proxy_host:proxy_port
sudo -H pip install --upgrade youtube-dl
# 或 sudo -H pip2 install --upgrade youtube-dl
# 或 sudo -H pip3 install --upgrade youtube-dl
pip 配置不好很影响 python 使用(的心情),但愿大家少走弯路。
== 我的 update 跟别人不一样 ==
将上面的命令改写为脚本,有哪些好用的bash 技巧(包括不限于快捷键、自用小脚本)?
function whereip()
{
argument=${1:-"where"}
case $argument in
where|ip|whereip|show)
curl --silent http://ip.cn 2>&1;;
proxy|world|global)
export HTTPS_PROXY=http://127.0.0.1:8087
export HTTP_PROXY=http://127.0.0.1:8087
export ALL_PROXY=http://127.0.0.1:8087
echo "Setup Proxy Completed."
;;
noproxy|unproxy|local|china)
unset HTTPS_PROXY
unset HTTP_PROXY
unset ALL_PROXY
echo "Cancel Proxy Completed."
;;
*)
echo "whereip show|proxy|noproxy";;
esac
}
写入 bashrc 或 zshrc,配以代理 8087 (根据实际情况,你可能需要将其修改为正确的地址)
在你 pip 遇到困难的途中,也许这条信息可以给你帮助!
链接:https://www.zhihu.com/question/21653286/answer/97950092
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
为了回答这个问题,特意跑到一台 CentOS 6.5 上装了一个 Python3(手头没有 Ubuntu 的环境),然后又装了一个 pip,通过ln创建连接、alias创建别名这些操作,证明Python2 和 Python3 还是可以完美并存的。
题主的问题不在于能不能并存,而在于用默认的 pip install 命令给Python3 安装这个做法本身就是错误的,下面是我的解决方案:
环境上之前已经有了 Python 和 pip,
# python --version:
Python 2.7.9
# pip --version
pip 8.1.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
安装了 Python3 之后,创建一个软链接 /usr/bin/python3,
# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
# which python3
/usr/bin/python3
# ll /usr/bin/python3
lrwxrwxrwx. 1 root root 30 4月 28 20:46 /usr/bin/python3 -> /usr/local/python3/bin/python3
这样就可以直接使用 python3 命令了。
# python3 --version
Python 3.5.1
接着我用 Python3 装了个pip。之前有人说用pip3升级又会变成pip,所以我开始装的是一个1.5.4版本的。
# which pip3
/usr/bin/which: no pip3 in (/usr/lib/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# pip3 --version
pip 1.5.4 from /usr/local/python3/lib/python3.5/site-packages/pip-1.5.4-py3.5.egg (python 3.5)
那我现在就开始用两个pip进行安装啦,就安装那个 requests 包吧:
# python
Python 2.7.9 (default, Dec 1 2015, 14:05:26)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named requests
>>>
包不存在噢~
# pip install requests
Collecting requests
Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)
100% |████████████████████████████████| 501kB 945kB/s
Installing collected packages: requests
Successfully installed requests-2.9.1
# python
Python 2.7.9 (default, Dec 1 2015, 14:05:26)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get('http://zhihu.com')
<Response [200]>
>>>
Python2 下是没问题的,接下来再看 Python3:
# python3
Python 3.5.1 (default, Apr 28 2016, 20:38:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'requests'
>>>
也是不存在的。
# pip3 install requests
Collecting requests
Using cached requests-2.9.1-py2.py3-none-any.whl
Installing collected packages: requests
Successfully installed requests-2.9.1
# python3
Python 3.5.1 (default, Apr 28 2016, 20:38:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get('http://zhihu.com')
<Response [200]>
>>>
bingo~
好,我再升级一下 pip3:
# pip3 install --upgrade pip
Downloading/unpacking pip from https://pypi.python.org/packages/31/6a/0f19a7edef6c8e5065f4346137cc2a08e22e141942d66af2e1e72d851462/pip-8.1.1-py2.py3-none-any.whl#md5=22db7b6a517a09c29d54a76650f170eb
Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB): 1.2MB downloaded
Installing collected packages: pip
Found existing installation: pip 1.5.4
Uninstalling pip:
Successfully uninstalled pip
Successfully installed pip
Cleaning up...
# pip3 --version
pip 8.1.1 from /usr/local/python3/lib/python3.5/site-packages (python 3.5)
完美升级,并且可用。
现在再说为什么题主使用 pip install 想给 Python3 安装这个做法是错的:
看我上面执行了两个 pip --version 命令和 pip3 --version 命令,明确的显示了他们安装包的 site-packages 路径,你默认的 pip 是 Python2 下的,安装的包当然安装不到 Python3 下面。我为什么要在 /usr/bin 下创建一个 pip3 链接,因为同一个目录下,只能存在一个 pip , 已经存在了指向 Python2 的 pip,新来的 pip 就不能再用这个名字,否则覆盖就造成原来 Python2 的 pip 不可用。
如何解决同名命令的多版本存在的问题呢? 参考我下面的做法:
python3/pip3 带个数字的命令总觉得不正统,但是不带数字的 python/pip 已经被 Python2 给占用了又想保留他们,那我该怎么办呢? 这个时候就轮到伟大的 alias 上场了:
# alias pip=/usr/local/python3/bin/pip3
# pip --version
pip 8.1.1 from /usr/local/python3/lib/python3.5/site-packages (python 3.5)
此时 再用 pip install 安装的库都将安装到 Python3 的路径下,如果想用 Python2 的 pip , 只需要执行一个 unalias pip 就好了:
# unalias pip
# pip --version
pip 8.1.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
同理,可以把这个用到 python 命令上。
alias 命令可以写到你的shrc环境变量文件里,这样就不用每次都敲这么一长串命令了。
(看那个贴官方答案的,每次安装执行那么长一坨命令就不头疼么?)
另外,那篇[官解]里说脚本头部加上 shebang 行的,个人认为完全没有必要,为什么呢?
Linux 里面,脚本加上 shebang 并赋予可执行权限,这样通过 "/路径/脚本" 的形式就可以执行脚本了,如果脚本没有赋予可执行权限时,这种方式就无法执行。而用以下这种方式:
"python /路径/脚本" 或者 "python3 /路径/脚本" 无论有没有赋予脚本权限,无论有没有 shebang 行,脚本都是可以执行的,还是这种方式更直接一些。
PS: Linux 下面多认识一下 PATH,用好 ln 、alias ,可以帮你解决好多问题 ,有时 virtualenv 也并不需要。
☝ᖗ乛◡乛ᖘ☝ 完美