2014-11-07 21 views
9

Używam NLTK z wordnetem w moim projekcie. Zrobiłem instalację ręcznie na moim komputerze, z pip: pip3 install nltk --user w terminalu, następnie nltk.download() w powłoce Pythona, aby pobrać wordnet.Instalowanie danych nltk w skrypcie setup.py

Chcę to zrobić z plikiem setup.py, ale nie wiem, jak zainstalować WordNet.

na chwilę, mam ten fragment kodu po wywołaniu setup („NLTK” jest w install_requires listy wezwanie do setup):

import sys 
if 'install' in sys.argv: 
    import nltk 
    nltk.download("wordnet") 

Czy istnieje lepszy sposób to zrobić?

Odpowiedz

1

Można także zautomatyzować instalację ze skryptu powłoki, na przykład, działa (po pip instalowanej NLTK):

python -m nltk.downloader -d /usr/share/nltk_data wordnet 
6

udało mi się zainstalować dane NLTK w setup.py nadrzędnymi cmdclass z moim Install klasa:

from setuptools import setup, find_packages 
from setuptools.command.install import install as _install 


class Install(_install): 
    def run(self): 
     _install.do_egg_install(self) 
     import nltk 
     nltk.download("popular") 

setup(... 
    cmdclass={'install': Install}, 
    ... 
    install_requires=[ 
     'nltk', 
     ], 
    setup_requires=['nltk'] 
    ... 
    ) 

ważne jest, aby użyć metody do_egg_install() w swojej metodzie run() aby upewnić NLTK zostanie zainstalowany, zanim import nltk nazywa (Patrz także tutaj python setuptools install_requires is ignored when overriding cmdclass). Nie zapomnij też dodać numeru nltk do setup_requires.