我是github的新手,正在尝试安装unicodecsv(https://github.com/jdunck/python-unicodecsv)。
我在努力
sudo pip install -e git://github.com/jdunck/python-unicodecsv.git#egg=unicodecsv
但我收到一条错误信息。我可能做错了一个人,有人能帮忙吗?
Obtaining unicodecsv from git+git://github.com/jdunck/python-unicodecsv.git#egg=unicodecsv
Cloning git://github.com/jdunck/python-unicodecsv.git to ./src/unicodecsv
Running setup.py egg_info for package unicodecsv
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/Users/dave/Dropbox/Promoter/working/src/unicodecsv/setup.py", line 5, in <module>
version = __import__('unicodecsv').__version__
File "unicodecsv/__init__.py", line 49
except TypeError, e:
^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/Users/dave/Dropbox/Promoter/working/src/unicodecsv/setup.py", line 5, in <module>
version = __import__('unicodecsv').__version__
File "unicodecsv/__init__.py", line 49
except TypeError, e:
^
SyntaxError: invalid syntax
----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /Users/dave/.pip/pip.log
Davids-MacBook-Air:working dave$ sudo pip install -e git://github.com/jdunck/python-unicodecsv.git#egg=unicodecsv
Obtaining unicodecsv from git+git://github.com/jdunck/python-unicodecsv.git#egg=unicodecsv
Updating ./src/unicodecsv clone
^[ Running setup.py egg_info for package unicodecsv
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/Users/dave/Dropbox/Promoter/working/src/unicodecsv/setup.py", line 5, in <module>
version = __import__('unicodecsv').__version__
File "unicodecsv/__init__.py", line 49
except TypeError, e:
^
SyntaxError: invalid syntax
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/Users/dave/Dropbox/Promoter/working/src/unicodecsv/setup.py", line 5, in <module>
version = __import__('unicodecsv').__version__
File "unicodecsv/__init__.py", line 49
except TypeError, e:
^
SyntaxError: invalid syntax
----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /Users/dave/.pip/pip.log
问题是,您使用的是Python3.0或更高版本,并试图使用只与2.7或更早版本兼容的库。
具体问题是回溯所指向的行:
此语法在2.6中被弃用,取而代之的是(更加灵活和一致的)新语法:
在3.0及更高版本中,不再允许使用不推荐的语法。
所以,如果你想使用这个库,就必须有人把它移植给你、作者或其他人。这可能只是运行^{} ,或者手动修复每个
except
语句的问题,但可能要做的事情远不止这些,特别是考虑到这个库都是关于Unicode的。然而,值得注意的是,Python3.x并没有像2.x那样的问题。您可以传递
csv
模块文本/Unicode文件对象,它只处理它们。改编unicodecsv
文档中的示例:注意,我甚至不需要指定
utf-8
,因为StringIO
是Unicodestr
缓冲区,而不是bytes
缓冲区。你根本不用担心编码。如果您甚至不知道自己运行的是Python3.x(如中所示,您知道自己已经安装了Python3.x,但是您很小心地将苹果预装的Python2.7放在了较高的位置),那么这可能是三个常见的原因。
苹果的Python并没有附带
pip
;所有流行的Python 3.x安装程序和软件包都有。因此,如果您还没有安装2.7版的pip
,那么您只有3.x版。苹果的Python安装类似于
pip
到/usr/local/bin
的脚本。一些流行的Python3.x安装程序和包也是如此。所以,无论你最近安装的是哪个都会赢。(3.x版本也应该是/usr/local/bin/pip3
,所以用2.7版本覆盖它的/usr/local/bin/pip
通常是可以的……除非pip3
是指向pip
的符号链接。)sudo
故意丢弃大部分用户环境,因此当以自己的身份运行时,2.7可能比PATH
更高,但在使用sudo
运行时不会。相关问题 更多 >
编程相关推荐