我更新了我的python解释器,但我认为旧的仍然被调用.当我检查我得到的版本时:
$ python -V Python 3.0.1
但我相信旧的翻译仍然被称为.当我运行命令时:
python myProg.py
该脚本运行正常.但是当我用命令调用它时
./myProg.py
我收到错误消息:
AttributeError: 'str' object has no attribute 'format'
这显然是由于旧的翻译被称为.我怎样才能解决这个问题?我运行Mac OS X 10.5.它与第一行有关:
#!/usr/bin/python
我刚开始使用python并且对解释语言不是很熟悉,所以我不太清楚发生了什么.
编辑:哇,那很快.非常感谢!
根据脚本的第一行#!/usr/bin/python
,您正在调用Python解释器/usr/bin/python
(很可能是Mac OS X附带的解释器).您必须将该路径更改为安装Python 3解释器的路径(可能/usr/local/bin/python
或/opt/local/bin/python
); 或者您可以将该行更改为读取#!/usr/bin/env python
,这将python
在您的PATH
变量中调用列出的第一行(这似乎是您安装的较新版本).
首先,推荐的shebang系列是:
#!/usr/bin/env python
这将确保./foo.py
当您从命令行调用python时调用的同一个解释器时调用的python解释器.
根据您的描述,我怀疑如果您这样做:
which python
它不会给你/usr/bin/python
.它会给你一些其他东西,这是python 3解释器所在的地方.您可以将shebang行修改为上面的行,或者使用返回的路径替换python解释器的路径which
.