2014-06-19 10 views
7

Sto lavorando su OS X Mavericks e voglio usare i moduli NodeBox in script Python.Come installare NodeBox per console

Il post su come installare i moduli per console è del 2009 e non funziona più poiché si riferisce alla versione 1.9.x (la corrente è 3.0.40). Anche la fonte SVN non c'è più. Le fonti sono disponibili su GitHub.

Clonando il progetto e l'esecuzione:

ant run 

tutto quello che ottiene è una build della versione desktop.

Come installare ed eseguire correttamente i moduli NodeBox aggiornati negli script Python?

risposta

2

Come detto nella documentazione here nella sezione 2. Installazione del modulo NodeBox:

Se si desidera utilizzare NodeBox dalla riga di comando, si dovrà installarlo. Al momento consiglia di utilizzare Subversion per afferrare una copia:

svn co http://dev.nodebox.net/svn/nodebox/trunk/ nodebox
...
cd src
python setup.py install

dovremmo Installazione del solito modo dalla fonte, ma come dici tu la procedura è piuttosto obsoleto . La sorgente apparentemente si è spostata da SVN a GitHub a https://github.com/nodebox/nodebox-pyobjc come indicato nello download page e anche la struttura del pacchetto di origine è stata modificata.

Diamo afferrare la fonte e cercare di installarlo:

$ git clone https://github.com/nodebox/nodebox-pyobjc.git 
$ cd nodebox-pyobjc 
$ python nodebox/setup.py install 

Traceback (most recent call last): 
    File "nodebox/setup.py", line 17, in <module> 
    import nodebox 
ImportError: No module named nodebox 

esigenze setup.py per importare il pacchetto nodebox, aggiungiamo la directory radice del progetto al percorso di Python, in modo che il pacchetto nodebox può essere trovato e riprova:

$ export PYTHONPATH=$PYTHONPATH:. 
$ python nodebox/setup.py install 

... 
clang: error: no such file or directory: 'nodebox/ext/cGeo.c' 
clang: error: no input files 
error: command 'clang' failed with exit status 1 

Ora si scopre alcuni percorsi lib in setup.py sono sbagliate, nessuno probabilmente usato questo per un certo tempo, mentre le librerie spostati, ma siamo in grado di risolvere il problema:

# ext_modules = [ 
#  Extension('cGeo', ['nodebox/ext/cGeo.c']), 
#  Extension('cPathmatics', ['nodebox/ext/cPathmatics.c']), 
#  Extension('cPolymagic', ['nodebox/ext/gpc.c', 'nodebox/ext/cPolymagic.m'], extra_link_args=['-framework', 'AppKit', '-framework', 'Foundation']) 
#  ] 

ext_modules = [ 
    Extension('cGeo', ['libs/cGeo/cGeo.c']), 
    Extension('cPathmatics', ['libs/pathmatics/pathmatics.c']), 
    Extension('cPolymagic', ['libs/polymagic/gpc.c', 'libs/polymagic/polymagic.m'], extra_link_args=['-framework', 'AppKit', '-framework', 'Foundation']) 
    ] 

Prova installare di nuovo:

$ python nodebox/setup.py install 
... 
running install_egg_info 
Writing <python>/lib/python2.7/site-packages/NodeBox-1.9.7rc2-py2.7.egg-info 

$ pip list 
... 
NodeBox (1.9.7rc2) 
... 

Ora il pacchetto installato con successo e dovremmo essere in grado di usarlo:

$ python 
>>> import nodebox 
>>> dir(nodebox) 
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'get_version'] 
>>> nodebox.__version__ 
'1.9.7rc2' 

Inoltre, si può ancora bisogno di installare manualmente alcune delle dipendenze per tutto per funzionare correttamente, come indicato in setup.py stessa:

# We require some dependencies: 
# - PyObjC 
# - psyco 
# - py2app 
# - cPathMatics (included in the "libs" folder) 
# - polymagic (included in the "libs" folder) 
# - Numeric (included in the "libs" folder) 
# - Numpy (installable using "easy_install numpy") 

Ho già creato un pull request con fixed setup.py percorsi lib, vedi here.

Testato su OS X Mavericks (Versione sistema: OS X 10.9.3 (13D65), versione kernel: Darwin 13.2.0) utilizzando Homebrew Python 2.7.6.

+0

Ok. Ho provato questo. A causa del permesso ho dovuto passare alla root. Ho anche ricevuto "cc fallisce con exit status 1". Questa domanda fornisce una soluzione: http://stackoverflow.com/questions/22697440/cc-failed-with-exit-status-1-error-when-install-python-library – jurihandl

+0

@jurihandl Per quanto riguarda il passaggio a root, dipende su come è impostato il tuo ambiente. Se usi Python di sistema, posizioni di filesystem protetti, ecc. Potresti aver bisogno di root. Quindi quali sono gli errori effettivi, le righe precedenti "cc fallisce con lo stato di uscita 1"? – famousgarkin

Problemi correlati