2013-10-02 37 views
1

我得到的,因爲使用由谷歌與他們apiclient模塊的命名約定的下列錯誤:蟒蛇setuptools的不明白,「谷歌API的Python客戶端」是真正的模塊名稱

$ sudo ./setup.py install 
Traceback (most recent call last): 
    File "./setup.py", line 37, in <module> 
    scripts = [ 'bin/gsync' ], 
    File "/usr/lib/python2.7/distutils/core.py", line 112, in setup 
    _setup_distribution = dist = klass(attrs) 
    File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 225, in __init__ 
    _Distribution.__init__(self,attrs) 
    File "/usr/lib/python2.7/distutils/dist.py", line 259, in __init__ 
    getattr(self.metadata, "set_" + key)(val) 
    File "/usr/lib/python2.7/distutils/dist.py", line 1220, in set_requires 
    distutils.versionpredicate.VersionPredicate(v) 
    File "/usr/lib/python2.7/distutils/versionpredicate.py", line 113, in __init__ 
    raise ValueError("expected parenthesized list: %r" % paren) 
ValueError: expected parenthesized list: '-api-python-client' 

如何我指示setuptools這個庫不應該考慮版本謂詞,本質上忽略連字符並將所有內容都包含爲庫名稱?

+0

您可以通過發佈'setup.py'的內容來改善您在這裏獲得答案的前景。很難猜測關於「google-api-python-client」的情況。問題可能與該軟件包的名稱無關。 – gotgenes

+0

我剛纔發現了什麼問題。如果使用'require = []',它將使用distutils樣式setup()函數中的版本謂詞。但是,如果使用'install_requires = []'對列表項(對於版本謂詞使用空格而不是括號)進行輕微更改,則它可以正常工作。 – Craig

+0

繼續前進並做出答案,並將您的答案標記爲最佳,然後結束。 –

回答

1

我剛剛發現了什麼問題。如果使用requires = [],它將使用distutils樣式setup()函數中的版本謂詞。但是,如果使用install_requires = [],對列表項(空格代替括號用於版本謂詞)稍作更改,則可以正常工作。

相關問題