2014-06-19 8 views
7

Pracuję nad OS X Mavericks i chcę używać modułów NodeBox w skryptach Pythona.Jak zainstalować NodeBox na konsolę

Post o tym, jak zainstalować moduły na konsolę pochodzi z 2009 roku i już nie działa, ponieważ odnosi się do wersji 1.9.x (obecna jest 3.0.40). Również źródła SVN już tam nie ma. Źródła są dostępne na GitHub.

przez klonowanie projekt i wykonanie:

ant run 

wszystko mam to build wersji stacjonarnym.

Jak poprawnie zainstalować i uruchomić aktualne moduły NodeBox w skryptach Pythona?

Odpowiedz

2

Jak powiedział w docs here w sekcji 2. Instalowanie modułu NodeBox:

Jeśli chcesz użyć NodeBox z linii poleceń, trzeba go zainstalować. Obecnie zaleca się używanie Subversion, aby pobrać kopię:

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

powinniśmy instalacją zwykłą drogę od źródła, ale jak mówisz, że procedura jest dość przestarzały . Źródło prawdopodobnie przeniosło się z SVN do GitHub pod https://github.com/nodebox/nodebox-pyobjc, jak wspomniano na download page i zmieniono również strukturę pakietu źródłowego.

Niech chwycić źródła i spróbuj zainstalować go:

$ 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 

Więc setup.py potrzeby importowania pakietu nodebox, dodajmy root projekt dir do ścieżki Pythona, tak, że pakiet nodebox można znaleźć i spróbuj jeszcze raz:

$ 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 

teraz okazuje się pewne lib ścieżek w setup.py są złe, nikt prawdopodobnie używane przez jakiś czas, podczas gdy libs przemieszczać, ale możemy to naprawić:

# 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']) 
    ] 

Spróbuj zainstalować ponownie:

$ 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) 
... 

teraz pakiet pomyślnie zainstalowany i powinniśmy być w stanie z niego korzystać:

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

Ponadto, nadal może trzeba ręcznie zainstalować niektóre z zależnościami dla wszystko do poprawnego działania, jak wspomniano w samym pliku setup.py:

# 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") 

Już stworzyłem żądanie pobierania z ustalonymi ścieżkami biblioteki setup.py, zobacz here.

Testowany na OS X Mavericks (wersja systemu: OS X 10.9.3 (13D65), wersja jądra: Darwin 13.2.0) przy użyciu Homebrew Python 2.7.6.

+0

Ok. Próbowałem tego. Z powodu pozwolenia musiałem przejść na root. Dostałem również "awarie cc ze statusem wyjścia 1". To pytanie zapewnia rozwiązanie: http://stackoverflow.com/questions/22697440/cc-failed-with-exit-status-1-error-when-install-python-library – jurihandl

+0

@jurihandl Jeśli chodzi o przejście na root, zależy o tym, jak skonfigurowane jest twoje środowisko. Jeśli korzystasz z systemu Python, chronionych lokalizacji systemów plików itp., Możesz potrzebować root'a. Więc jakie są rzeczywiste błędy, które pojawiają się przed "cc nie działa ze statusem wyjścia 1"? – famousgarkin