【发布时间】:2015-01-26 06:26:26
【问题描述】:
我正在尝试编写一个小脚本,它将 url 作为输入并解析它。
以下是我的脚本
#! /usr/bin/env python
import sys
from urlparse import urlsplit
url = sys.argv[1]
parseUrl = urlsplit(url)
print 'scheme :', parseUrl.scheme
print 'netloc :', parseUrl.netloc
但是当我用./myscript http://www.example.com执行这个脚本时
它显示以下错误。
AttributeError: 'tuple' object has no attribute 'scheme'
我是python/scripting 的新手,我哪里做错了?
编辑:我使用的 Python 版本是 Python 2.7.5
【问题讨论】:
-
您没有使用 2.7.5。我刚刚下载并编译了它,你的代码可以很好地使用它,就像我的默认 Python 2.7.6 一样。您可以使用
python --version检查您的版本。确保/usr/bin/env python也返回正确的 python。 -
我已经在
python --version之后执行,它返回给我 Python 2.7.5 然后我在usr/bin/env python之后执行,它在 Python 2.7.5 之后返回我(默认,2014 年 3 月 9 日,22:15:05 ) [GCC 4.2.1 兼容 Apple LLVM 5.0 (clang-500.0.68)] 在达尔文上 -
如果在脚本中添加
print sys.version会发生什么?另外,您是如何运行脚本的 - 在提示符下以交互方式运行? -
是的,你是对的,python 版本是
Python 2.4.3。我会升级到2.7。谢谢! -
听起来您已经在某处安装了正确的 Python。你只需要改变你的#!到那个 Python 的行,例如"#!/usr/bin/python2.7" 或任何正确的路径