2014-01-09 9 views
10

My package einen Einstiegspunkt definiert hat in seiner setup.py:Setuptools console_script Einstiegspunkt nicht installieren, aber es ist gefunden mit entwickeln

# -*- coding: utf-8 -*- 
from setuptools import setup 

setup(
    name='fbuildbot', 
    version='0.1', 
    ... 
    entry_points={ 
     'console_scripts': [ 
      'create = create:main', 
     ], 
    }, 
    install_requires=[ 
     "cookiecutter", 
    ], 
) 

Sache ist, wenn ich python setup.py develop tun, ich den Befehl ausführen kann gerade fein , aber wenn ich es installieren mit python setup.py install das Verfahren installieren läuft korrekt, aber die Konsole Skript nicht mit ImportError:

Traceback (most recent call last): 
    File "/home/matias/.venvs/fbuild/bin/create", line 8, in <module> 
    load_entry_point('fbuildbot==0.1', 'console_scripts', 'create')() 
    File "/home/matias/.venvs/fbuild/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 318, in load_entry_point 
    File "/home/matias/.venvs/fbuild/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 2221, in load_entry_point 
    File "/home/matias/.venvs/fbuild/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 1954, in load 
ImportError: No module named create 

klar es andernfalls das Paket korrekt auf der PYTHONPATH einrichten. Ich dachte es liegt daran, dass ich das Skript kaum auf der obersten Ebene habe. Also habe ich versucht, alles in einem Paket hinzugefügt Verpackung, alle wichtigen Teile zu einem inneren Modul zu bewegen und die setup.py änderte entsprechend:

# -*- coding: utf-8 -*- 
from setuptools import setup 

setup(
    name='fbuildbot', 
    version='0.1', 
    description="Buildbot configuration generator for fbuild", 
    ... 
    packages=['fbuildbot', ], 
    entry_points={ 
     'console_scripts': [ 
      'create = fbuildbot.create:main', 
     ], 
    }, 
    install_requires=[ 
     "cookiecutter", 
    ], 
) 

aber es funktioniert nicht mit derselben Nachricht (mit aktualisierten Weg, natürlich).

Klar mache ich hier etwas falsch. Was könnte es sein?

Antwort

7

Das Problem liegt in Ihrem Paketargument. Sie legen fest, nur:

packages=['fbuildbot', ], 

nicht

packages=['fbuildbot', 'fbuildbot.create'], 

so wird Ihr Setup nicht tatsächlich die Installation des "erstellen" -Modul. Macht Sinn, dass es nicht gefunden werden konnte.

würde ich das find_packages Dienstprogramm

from setuptools import setup, find_packages 

setup(
    ... 
    packages=find_packages(), 
    entry_points={ 
     'console_scripts': [ 
      'create = fbuildbot.create:main', 
     ], 
    }, 
    ... 
) 

empfehlen, die alle es für Sie behandelt.