不同python版本安装模块

pip与python是关联的

我的电脑系统里面有许多的python版本,比如python2.7,python3.6,用pip install 安装module会安装到哪个python里去呢?
其实每个版本的python都有各自的pip,比如我的电脑里面python默认路径:

which python

输出

/Users/thomas_young/miniconda3/bin/python

而pip的路径在

which pip

输出

/Users/thomas_young/miniconda3/bin/pip

也就是说pip和python是在同一层目录下的(不过有时候未必找得到相应的pip,这种情况暂时不考虑),那么要安装的时候指定关联的pip就可了,比如我想安装/Users/thomas_young/miniconda3/envs/bunnies/bin/python 这个版本的flask,找到相关联的pip,运行下面的命令即可:

/Users/thomas_young/miniconda3/envs/bunnies/bin/pip install flask

pip找不到module时的解决方案

此外,有时候pip install 可能没有相应的module,那在官方或者某些网站是可以找到相应的module安装包下载下来离线安装的:
https://pypi.python.org/pypi 或者 https://www.lfd.uci.edu/~gohlke/pythonlibs/(这里面的包基本上都是windows用的)

以flask为例:https://pypi.python.org/pypi/Flask/0.12.2 这个页面的whl文件:Flask-0.12.2-py2.py3-none-any.whl (md5)
再安装下载的whl文件即可:

pip install Flask-0.12.2-py2.py3-none-any.whl

验证一下呢:

import flask
flask.__file__

输出,模块确实安装到了指定目录下

'/Users/thomas_young/miniconda3/lib/python3.6/site-packages/flask/__init__.py'

更好的做法

了解到python和pip是关联的以后,再深入一下,可以发现其实pip是个shell脚本,比如在/Users/thomas_young/miniconda3/bin/pip里面内容是这样的:

#!/Users/thomas_young/miniconda3/bin/python
if __name__ == '__main__':
    import sys
    import pip

    sys.exit(pip.main())

里面用到了pip的模块。所以即使没有pip这个shell脚本,直接在使用指定python运行以下命令即可, -m 表示 run library module as a script (terminates option list):

python2.7 -m pip install flask

当然flask也可以替换成本地的whl文件.

docker下python管理,敬请期待

你可能感兴趣的:(不同python版本安装模块)