Python 3.4在ubuntu 14.04上的setup.py中语法无效,为什么?

时间:2016-02-15 07:51:32

标签: python-3.x pip ubuntu-14.04 setuptools

我的python项目rma中有一个错误(ussue #14 on github)。使用python 3.4安装它trow pip 1.5.4有些错误:

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中新手,对不起这个众所周知的问题。我想知道 - 我应该找到修复它的方法(如果这是我的问题)或者只是建议将pip更新到我的用户?

1 个答案:

答案 0 :(得分:2)

该软件包不会在任何Python版本上安装&lt; 3.5,因为除了Python 3.5和更新版本之外,语法确实无效。

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

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

将此报告为错误是正确的做法;该软件包声明它支持Python 3.4及更高版本。

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