2016-02-15 47 views
0

我在我的python项目rma中有一个bug(ussue #14 on github)。安装它用python 3.4 trow pip 1.5.4一些有这样的错误:Python 3.4在ubuntu 14.04的setup.py中无效的语法,为什么?

Downloading/unpacking rma 
Downloading rma-0.1.5.tar.gz 
Running setup.py (path:/tmp/pip_build_root/rma/setup.py) egg_info for package rma 
Traceback (most recent call last): 
    File "<string>", line 17, in <module> 
    File "/tmp/pip_build_root/rma/setup.py", line 47 
    setup(**sdict, install_requires=['redis', 'tabulate', 'tqdm', 'msgpack-python']) 
       ^
SyntaxError: invalid syntax 
Complete output from command python setup.py egg_info: 
Traceback (most recent call last): 

File "<string>", line 17, in <module> 

File "/tmp/pip_build_root/rma/setup.py", line 47 

setup(**sdict, install_requires=['redis', 'tabulate', 'tqdm', 'msgpack-python']) 

      ^

SyntaxError: invalid syntax 

---------------------------------------- 

我自己的pip版本8.0.2(python是3.5)。

我在Python中newby,对不起,如果这个众所周知的问题。我想知道 - 我应该找到解决办法(如果这是我的问题)或只是建议更新点到我的用户?

回答

2

该软件包将不会安装在任何Python版本< 3.5上,因为除了Python 3.5及更新版本之外,其他语言的语法确实无效。

您不能将**kwargs语法放在其他关键字参数的前面。这两个应该交换:

setup(install_requires=['redis', 'tabulate', 'tqdm', 'msgpack-python'], **sdict) 

报告这是一个错误是正确的事情;该软件包声明它支持Python 3.4及更高版本。

Python 3.5增加了对任意数量的*args**kwargs扩展到PEP 448的支持,为上面的工作打开了大门。