环境说明:
系统环境:
macos
python环境:
系统自带:python 2.7.10
个人安装:python 3.5.4
写在前面:我的环境报错的根本原因是我系统中有两个python环境,且pycharm里项目所指定的python环境和系统本身自带的环境是不同的
1. 通过pycharm安装pymysql
1.1 安装方法
1)打开pycharm - Preferences选项框
2)在当前项目(Project)下,点击Project Interpreter,然后点击“+”按钮
3)搜索框输入“pymysql”,选择PyMySQL,然后点击下面的“Install Package”
正常情况下,pymysql模块即可正常成功安装
而我的pycharm却报错,安装失败;多次尝试,仍无法成功安装,且报错一致
报错信息及分析过程见以下内容
1.2 安装报错
2. 报错说明及排查
2.1 报错原因
1)我系统中自带的py环境是2.7.10;同时,我自己安装了3.5.4的py环境
2)我pycharm的项目里面,指定的环境是python 3.5.4的环境,非系统自带的py
3)pycharm会默认用python2.7.10的pip来给python 3.5.4的环境来安装pymysql模块,导致无法成功安装
2.2 本机环境截图
1)系统自带py环境版本与安装路径
2)自己安装的py环境版本与安装路径
3. 通过pip安装pymysql
3.1 于python2.7.10环境安装pymysql
1)py2.7环境通过pip命令安装pymysql模块,报没权限
的错误(Permission denied
)
pip install PyMySQL
因为py2.7的环境是系统自带的,非本用户手动安装,因此在对该环境新增模块时,需要赋权,通过sudo
命令执行命令即可
2)sudo执行安装命令
sudo pip install PyMySQL
安装成功
3)测试安装结果
在终端中,分别进入到py2.7和py3.5的环境中,执行import pymysql
进行pymysql模块导入
由上图可知,目前py2.7环境可成功导入pymysql模块,而py3.5环境因为没有安装该模块,会报错 No module named 'pymysql'
3.2 于python 3.5.4环境安装pymysql
1)进入到py3.5环境的安装目录
由 2.2 章节 可知py3.5的安装目录,cd 切换到该目录下,可看到py3.5环境的pip的执行文件名为pip3.5
2)通过pip3.5 install PyMySQL
安装pymysql模块
报错信息:
Collecting pymysql
Could not fetch URL https://pypi.python.org/simple/pymysql/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:719) - skipping
Could not find a version that satisfies the requirement pymysql (from versions: )
No matching distribution found for pymysql
3)报错分析及解决方案
由报错可知,是无法找到合适版本的pymysql模块
此问题的主要原因是网络的问题,需要使用国内的镜像源来加速,比如豆瓣源
使用如下命令
pip3.5 install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
或者
pip3 install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
即可安装成功
4)重新安装pymysql模块
通过 pip3.5 install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
进行安装
安装成功
5)测试安装结果
终端直接进入py3.5环境,导入pymysql模块,未报错
pycharm里直接import 该模块,也能自动补全
至此,py2.7和py3.5均成功安装pymysql模块
4. 总结
关键点就在于,两个不同环境的pip应用程序名是不同的:
1)python2.7环境下,直接用pip install $模块名
2)python3.5环境下,需要用pip3.5 install $模块名
3)若是系统自带的py环境,需要带sudo
执行命令
4)某些包安装时可能需要通过一些网站进行跳转加速