繁体   English   中英

安装了Python 3.7,并尝试将其更改为默认值,但是更改$ PATH并运行python --version仍显示2.7

[英]Installed Python 3.7 and tried changing that to the default however, changing $PATH and running python --version still shows 2.7

抱歉,如果问题很简单,或者我遗漏了一些明显的问题,但是我对控制台命令和Python还是很陌生。

顾名思义,我安装了Homebrew,然后安装了最新版本的Python。 我想在bash中运行python --version时将其设置为默认值。

我尝试更改bash_profile中的路径,并在底部添加以下行:

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

看来,当我安装新模块时,它们适用于2.7而不是3。检查pip --version直接进入默认值:

 pip 18.0 from /usr/local/lib/python2.7/site-packages/pip (python 2.7) 

我还尝试运行以下命令:

echo "export Path=/usr/local/bin:$PATH" >> ~/.bash_profile && source  ~/.bash_profile

这确实会再次编辑我的bash_profile ,但是我想要的行(并手动添加)不是出现的那行; 而是插入以下内容(我不知道为什么在最后插入Applications / VMware,它与Python无关或我想做什么):

export PATH=/usr/local/bin:/usr/local/sbin:$PATHexport Path=/usr/local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware

谁能向我解释如何将python3设置为默认值。 我不想摆脱2.7,因为许多Mac脚本仍然依赖它。 是否可以安装pipenv并从那里运行3.7,同时将2.7保留为默认值?

您只需要运行命令

 $which python 

然后转到路径将python重命名为python2然后运行命令

$which python3

要获取python3的路径,只需使用命令链接

sudo ln -s $python3path /usr/bin

/ python您需要使用实际路径来代替$ python3path然后可以使用python命令运行python3

您真的不想更改此设置。

第一:

是否可以安装pipenv并从那里运行3.7,同时将2.7保留为默认值?

是! 安装pipenv ,并设置默认值为3.7的环境,但将系统默认设置为2.7。


更普遍:

根据PEP 394 ,如果您未激活虚拟环境,则要到2020年才能重新评估:

  • python3运行Python 3.x
  • python2运行Python 2.x
  • 通常不应该使用python但如果您确实使用python,则应运行python2.x。

通常,您还可以使用python3.7python2.7来运行特定的3.x和2.x版本,尽管任何标准都没有涉及。

pip脚本以及由pip安装的脚本,应使用类似的后缀安装,但是理想情况下,如果您有多个版本,则不应运行这些脚本。 它们中的大多数被设计为作为模块运行,因此您可以运行python3 -m pip来运行3.x的pip

对于某些事情,设置快捷方式可能会很方便。 (例如,我通常不是使用命令行来运行python3 -m ipython ,而是通常使用一个使用iTerm概要文件而不是bash作为启动命令。如果您既不使用IPython也不使用iTerm,则可以创建一个Terminal。运行python3应用程序配置文件。)

作为平台的软件包管理器一部分安装的脚本是一个更为复杂的故事,但是macOS没有官方的软件包管理器,Homebrew通常希望您使用pip而不是brew安装Python库,因此您不必担心关于那个。

程序应具有安装程序(无论是通过pip还是py2app类的程序进行安装),都可以创建适当的shbang行,因此它们可以与安装的Python版本一起运行,因此您不必担心它们。 但是您的操作系统随附的程序可能会使用/usr/bin/env python ,并且他们希望它们能够运行您的操作系统随附的Python版本。

对于开发目的,通常要使用virtualenvpipenvconda ,使python运行Python解释器无论哪个环境是当前激活。

因此,请勿尝试更改python运行Apple的python 2.7的事实。 这就是应该执行的操作,否则,可能会破坏事情。 使用python3python3 -m pip等; 在脚本上使用#!/usr/bin/env python3 (或者更好的是,使用setuptools自动创建入口点脚本); 使用虚拟环境; 只是永远不要运行python ,一切都会正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM