16

私のプロジェクトではワードネットで NLTK を使用しています。PC で手動でインストールを行い pip3 install nltk --user、端末で pip: を使用しnltk.download()てから、python シェルで wordnet をダウンロードしました。

これらをファイルで自動化したいのですsetup.pyが、wordnetの良いインストール方法がわかりません。

今のところ、setup(への呼び出し"nltk"install_requiresリストにあるsetup)への呼び出しの後に、次のコードがあります。

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

これを行うより良い方法はありますか?

4

2 に答える 2

13

cmdclass自分のInstallクラスでオーバーライドすることで、setup.py に NLTK データをインストールすることができました。

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

do_egg_install()が呼び出される前に、メソッドでメソッドを使用run()して nltk がインストールされていることを確認することが重要import nltkです (こちらも参照してくださいpython setuptools install_requires は、 cmdclass をオーバーライドするときに無視されます)。nltkに追加することも忘れないでくださいsetup_requires

于 2015-04-14T13:23:43.933 に答える
3

たとえば、実行するシェルスクリプトを使用してインストールを自動化することもできます(pipがnltkをインストールした後):

python -m nltk.downloader -d /usr/share/nltk_data wordnet
于 2014-11-30T18:51:00.917 に答える