美文网首页
不同python版本安装模块

不同python版本安装模块

作者: ThomasYoungK | 来源:发表于2018-01-21 11:21 被阅读524次

    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版本安装模块

          本文链接:https://www.haomeiwen.com/subject/pgjfaxtx.html