3

nltk を使用するプロジェクトをパッケージ化しています。pip を使用して nltk をインストールすると、コア機能が得られますが、付属のすべてのモジュールが得られるわけではありません。これらのモジュールを取得するには、nltk のダウンロード メソッドを呼び出します。

私は次のことを試しましたが、うまくいきませんImportError: No module named nltk。への呼び出しによって nltk がインストールされる前に import nltk が発生するため、これが発生していると思いますsetup(...)

次のいずれかを実行するディストリビュートを使用してインストール後の手順を実行するクリーンな方法はありますか?

$ python -m nltk.downloader punkt
>>> import nltk; nltk.download('punkt')

これが私の失敗した試みsetup.pyです:

class my_install(install):
    def run(self):
        install.run(self)
        import nltk
        nltk.download('punkt')

setup(
    ...
    install_requires = [..., 'nltk==2.0.4'],
    cmdclass={'install': my_install},
)
4

2 に答える 2

0

pip は依存関係を処理しないため、README ファイルを作成してユーザーに何をインストールする必要があるかを説明するか、必要なものすべてに対して pip install を実行するスクリプトを作成する必要があります。

この 2 番目の方法は、何が起こっているかを説明する README ファイルと共に、進むべき道だと思います。

Debian のメンテナーとして、他のパッケージをダウンロードするインストール コマンドを実行することは受け入れられないと考えられていると言えます。他のパッケージへの依存関係をリストしてパッケージ化し、依存関係が満たされている場合は自分のパッケージをインストールする必要があります。一般的に進むための正気な方法。http://wiki.debian.org/UpstreamGuide#No_Downloads

于 2013-03-11T20:14:51.387 に答える