2015-05-17 58 views
4

嗨我在OSx Mavericks上,使用python 2.7和pip版本6.0.8和setuptools版本12.2。爲什麼我在安裝時不斷收到這條消息,說EntryPoint必須在'name = module:attrs [extras]

當我嘗試安裝項目中,我得到的警告信息,但如果我使用的distutils我得到下面這可能是它的設置沒有kwarg entry_points消息成功安裝

$ python setup.py install --user 

。 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py: 267:UserWarning:未知分發選項: 'entry_points' warnings.warn(MSG)

但當我嘗試使用PIP以下方式來安裝,我得到以下錯誤消息和安裝不繼續:

$ pip install --user --editable . 

如果我使用PIP即使我有Distutils安裝進口的,我得到了以下錯誤消息。

Obtaining file:///Users/Me/Development/pyclones/git-maildiff 
    error in maildiff setup command: ("EntryPoint must be in 'name=module:attrs [extras]' format", 'git-maildiff=scripts.git-maildiff') 
    Complete output from command python setup.py egg_info: 
    error in maildiff setup command: ("EntryPoint must be in 'name=module:attrs [extras]' format", 'git-maildiff=scripts.git-maildiff') 

    ---------------------------------------- 
    Command "python setup.py egg_info" failed with error code 1 in /Users/Me/Development/pyclones/git-maildiff 

,而我有打電話給安裝這樣

setup(
    name='maildiff', 
    version=VERSION, 
    author='Sanjeev Kumar', 
    author_email='[email protected]', 
    packages=['emaildiff', 'emaildiff/mail',], 
    py_modules=['maildiff_cmd', 'version', 'send'], 
    data_files = ['VERSION'], 
    scripts=['scripts/git-maildiff'], 
    license='LICENSE', 
    description='Package to email color git diff', 
    long_description=open('README.md').read(), 
    entry_points={ 
    'console_scripts': 
     ['git-maildiff=scripts.git-maildiff'] 
       } 
) 

誰能幫助我,爲什麼我收到此,我更喜歡用PIP去,因爲我可以使用畫中畫以後卸載它,但我認爲他們不是像setup.py那樣的任何命令卸載或刪除。

+0

你做了'pip install --upgrade setuptools'嗎? 'entry_points'關鍵字在[新建和更改'setup()'關鍵字](https://pythonhosted.org/setuptools/setuptools.html#id8)下列出,所以您的setuptools版本可能太舊而不能包含它? –

+0

你確定,''git-maildiff = scripts.git-maildiff''是否有效?不知道,但我認爲你必須在這裏給出一個方法: ''git-maildiff = scripts.git-maildiff:mymethod'' – cel

回答

9

您在這些兩行定義的入口點:

'console_scripts': 
     ['git-maildiff=scripts.git-maildiff'] 

中有一個-,我不知道這是支持(git-maildiff是不是一個有效的Python模塊名稱)。此外,它錯過了函數名稱:main

你可以先嚐試添加main

'console_scripts': 
     ['git-maildiff=scripts.git-maildiff:main'] 

如果不起作用,重命名你的腳本以刪除-。我覺得你還是可以留下git-maildiff作爲入門點名稱,只是重命名模塊:

'console_scripts': 
     ['git-maildiff=scripts.git_maildiff:main'] 

這應該給你一個git-maildiff腳本調用git_maildiff模塊。你必須重新命名你的模塊文件。

+0

我需要'-',因爲這是git如何識別我寫的git命令。 –

+0

正如我寫的,你的*腳本名*可以包含短劃線,但是我們的*模塊名*可能不能。使用''git maildiff = scripts.git maildiff:main''。 –

+0

啊,對吧,我在開始時完全搞錯了,我們正在告訴腳本git-maildiff會去腳本目錄。現在我得到了它的工作謝謝。 –

相關問題