V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ulmate01
V2EX  ›  Python

关于 MacOS 上 Python 版本的小问题

  •  
  •   ulmate01 · 2018-07-13 20:16:18 +08:00 · 3474 次点击
    这是一个创建于 2359 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一直没有很理解这一块的逻辑。
    原来有 python2.7 和 3.6.1,没有装 env,anaconda
    3.6.1 装了 tensorflow、numpy 等包
    后来更新了 3.7,3.7 里并没有 numpy 等包。3.6.1 也没被删。
    现在在 terminal 里输入 python3 默认的是 3.7,请问我要使用 3.6.1 该如何使用?
    目前唯一的办法是在 pycharm 里面可以搜索到 3.6.1 并调用。
    既然 pycharm 可以搜索到 3.6.1,那么系统 terminal 也理应可以调用。
    请各位大佬赐教。
    10 条回复    2018-07-31 21:46:51 +08:00
    malusama
        1
    malusama  
       2018-07-13 20:23:32 +08:00
    装 pyenv 管理 python 的环境
    likuku
        2
    likuku  
       2018-07-13 20:25:30 +08:00
    同 #1,系统自带的 python 最好不要去动它,用 pyenv 来安装管理你想要的 python 版本
    bzq2810
        3
    bzq2810  
       2018-07-13 21:05:55 +08:00 via iPhone
    找到 3.6.1 的位置,软连接到 path 目录下,改成与 python3 不同的名字(比如 python3.6 ) pip 也一样
    matthewz
        4
    matthewz  
       2018-07-14 00:10:55 +08:00
    系统变量 path 了解一下
    lovedebug
        5
    lovedebug  
       2018-07-14 00:19:35 +08:00
    在你的 bashrc 或者 zshrc 中手动设置 python 版本即可。
    Sylv
        6
    Sylv  
       2018-07-14 00:35:02 +08:00 via iPhone
    简单来说,你在终端下输入 python3 后,终端是依次从 PATH 系统变量里的目录里去找 python3 文件来运行,这个目录一般是 /usr/local/bin,然后 /usr/local/bin/python3 是软链接到真正 python3 的安装位置。你在装了更新版本的 python3 后, /usr/local/bin/python3 一般就会链接到新版本 python3 的位置,因此旧版本的 python3 就没法通过在终端里输入 python3 运行到了。
    解决方法:
    1. 找到 python 3.6 的安装位置,直接输入全路径来运行(也就是 pycharm 能调用到 3.6 的原因)。
    2. 把 3.6 的实际路径软链接到 /usr/local/bin/python3.6,这样可以通过输入 python3.6 来运行。
    3. 使用 pyenv 来管理切换 python 版本。(推荐)
    XIVN1987
        7
    XIVN1987  
       2018-07-14 00:48:57 +08:00 via Android
    建议 alias,,下面是我在 Ubuntu 下的做法(自己的包都装在虚拟环境下,不污染系统 python )

    安装虚拟环境和 ipython:
    virtualenv -p python2.7 --system-site-packages venv27
    source venv27/bin/activate
    pip install ipython

    virtualenv -p python3.5 --system-site-packages venv35
    source venv35/bin/activate
    pip install ipython

    创建 alias
    function ipy2 {
      ~/win/venv27/bin/ipython
    }

    function ipy3 {
      ~/win/venv35/bin/ipython
    }

    function venv27 {
       source ~/win/venv27/bin/activate
    }

    function venv35 {
    source ~/win/venv35/bin/activate
    }
    guanyuwl
        8
    guanyuwl  
       2018-07-16 14:36:59 +08:00
    建议 alise 新学了一个 pipenv
    frostming
        9
    frostming  
       2018-07-17 12:34:36 +08:00
    次版本号更新,原来装的第三方包就是不能用了,我觉得这确实很不合理。要么就用回老版本 Python。

    这就是虚拟环境的用处了,建议所有的应用都用一个隔离的环境,python 里面就装一些很有限的包,可以容忍每次更新 Python 次版本都重装一次的程度。

    楼上说的 pipenv 就是干这个的
    kavana
        10
    kavana  
       2018-07-31 21:46:51 +08:00
    pycharm 可以比较明显的看到你的 python 安装在哪里,一般就 3 个地方,一个是 /usr/local/bin,一个是 anaconda/bin 下,一个在 Frameworks/Python.framework 下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2764 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:16 · PVG 10:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.