Which python am I using?
虽然已经通过自制软件安装了Python,但我确实无法确保使用最新版本的Python。
1 2
| $ brew upgrade python3
Error: python3 3.6.2 already installed |
但:
1 2
| $ python3 --version
Python 3.6.0 |
python2也是如此:
1 2 3 4 5
| $ brew upgrade python
Error: python2 2.7.13_1 already installed
$ python --version
Python 2.7.10` |
-
我不会太担心你的python安装的次要版本
-
我在语言检查上遇到了pip安装错误,我在这里看到一些答案提到了对较新的次要版本的修复:stackoverflow.com/questions/27835619/
-
所以当我通过pip安装时,我想确保我使用的是新版本
-
@kanjaklub,我没有Mac,但我打赌你有一个PATH问题。看起来你已经安装了,但PATH上的那个不是你想要的。 Mac有locate吗?如果是这样,请尝试运行locate bin/python,并查看它返回的内容。
-
brew默认安装到/usr/local/bin。您的shell使用PATH配置来查找二进制文件,看起来您没有将其配置为包含/usr/local/bin。
-
您可以使用二进制文件的完整路径来强制解决问题:/usr/local/bin/python3。
-
使用which告诉您在声明python或python3命令时使用的二进制文件,例如: which python3。如果使用-a命令行开关,则会列出通过PATH提供的所有二进制文件:which -a python3。
-
which -a python3输出/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /usr/local/bin/python3
-
这是我的$PATH:-bash: /Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: No such file or directory
-
这是我用locate bin/python:WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.得到的
首先,我修改了$ PATH:sudo nano /etc/paths,以便不调用/Library/Frameworks/Python.framework/Versions/3.6/bin。我确保我的路径顺序正确,以便python首先查找/usr/local/bin/python3和/usr/local/bin/python2来强制解决问题。
但是,$ python3 --version仍然返回
Python 3.6.0,虽然brew说python3 3.6.2 already installed。
brew doctor救援:自制软件推荐了几件事。 python错误地符号链接,所以我运行brew --overwrite python3。最后,它诊断出来自/Library/Frameworks/Python.framework/Versions/3.6/bin的python,所以我sudo rm -rf /Library/Frameworks/Python.framework。现在python版本是正确的。
关于/Library/Frameworks/Python.framework的Homebrew brew医生警告,即使安装了brew的Python
感谢大家的帮助。
如果这不打印'/ usr / local / bin / python'(其中brew实际安装了二进制文件),那么你的$ PATH就有问题(可能'/ usr / local / bin'不在那里或者在'之后插入' / usr / bin',所以系统默认运行python)。
++似乎brew默认将其python2.7命名为python2,而不是python,因此您可能还需要在/ usr / local / bin目录中创建python2-> python链接。
您是否为每个变量设置了单独的环境变量?
我在过去发现,例如,有多个版本的python 2,没有所有环境变量,可能会让人很困惑!
您可能会发现在键入python3时,windows只查看python 3.0,除非您在python 3.6.2目录中。