2013-10-20 21 views
7

Sto solo facendo i miei primi passi usando Celery. Ho creato un piccolo esempio che si basa sui passi descritti in http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html Quando provo ad avviare il lavoratore utilizzando manualmentePrimi passi con Celery usando un virtualenv

celery -A my_example worker --loglevel=info 

corro in un errore perché un modulo dal mio virtualenv non può essere trovato. Il virtualenv è attivato e il modulo è installato, quindi presumo che il sedano stia usando il mio interprete Python globale. Ho controllato

celery worker --help 

ma non ho trovato alcun parametro per specificare un determinato interprete o virtualenv. Qualcuno potrebbe dire come avviare un lavoratore manualmente all'interno di una virtualenv?

Aggiornamento:

avevo Sedano installato nel mio ambiente python globale e nel mio virtualenv. Ho rimosso entrambi e ricontrollato che entrambe le versioni sono state rimosse. Ho quindi installato Celery i my virutalenv. Se ora io chiamo lo strumento linea celery comand, si ottiene il seguente errore:

-bash: /usr/local/bin/celery: No such file or directory 

Questo è il luogo in cui lo strumento sarebbe stato installato, se sarebbe stato installato globaly. Quindi Celery funziona davvero da una virtualizzazione?

+0

cosa ti dà il sedano .__ file__? (project_A) user-164-126-78-15: ~ galuszkak $ python Python 2.7.5 (predefinito, 7 set 2013, 11:38:54) [GCC 4.2.1 Compatibile Apple LLVM 4.2 (clang- 425.0.28)] su darwin Digitare "help", "copyright", "credits" o "license" per ulteriori informazioni. >>> import sedano >>> celery .__ file__ '/Users/galuszkak/Projects/virtuals/project_A/lib/python2.7/site-packages/celery/__init__.pyc' – galuszkak

+0

Se lo faccio da un sistema interattivo prompt, ottengo il percorso della versione virtualenv. – Achim

risposta

5

provato ad installare in modo pulito sedano in virtualenv (senza installarlo nel sistema globale interprete):

mkdir celery-test 
cd celery-test 
virtualenv-2.7 .python 
source .python/bin/activate 
pip install celery 
celery worker --help 

Funziona perfettamente, which celery mi dà:

/home/user/projects/celery-test/.python/bin/celery 

come previsto.

Ti suggerisco di rieseguire la sessione del terminale (possibili problemi con il PERCORSO).

Se non aiuta, quindi è possibile controllare la variabile PATH per trovare, perché il sedano da virtualenv non è visibile.

E se non ci sono problemi con PATH, ma il problema persiste, prova a ricreare il tuo virtualenv da zero.

EDIT:

altro suggerimento: controllare uscita:

which celery 

Dovrebbe puntare a qualche percorso, ma anche si potrebbe alias così:

celery: aliased to /somepath/bin/celery 

Se in realtà è aliasato a qualcosa, che è necessario controllare il tuo ~/.bashrc (~/.zshrc) o ~/.bash_profile (~/.zprofile) o anche contenuto della cartella /etc/profile.d/*. Devi liberarti di questo alias.

+2

Sembra che sia stato il PERCORSO. Una nuova sessione di terminale ha risolto il problema. Ma non ho idea del perché !? ;-) – Achim

+0

@Achim, felice che il tuo problema sia risolto :) Non lo so, ho appena suggerito. Forse qualcosa installato in questa sessione del terminale è stato manomesso con PATH, quindi/usr/local/bin era all'inizio del PATH. – Waterlink