私は新しい人ですが、私はPythonターミナル内でいくつかのコマンドを実行可能なプレイブックを通じて実行しようとしています。具体的には、私はコーパスをダウンロードしたいと思う。現在Pythonターミナルでコマンドを実行するには
$python
>import nltk
>nltk.download
> ~ d (download)
> ~ book
> ~ q (quit)
>quit()
、私の脚本ファイルがrequirements.txt
を通じてNLTKをインストールしますが、私はそれを手動でダウンロードすることなく、特定のNLTK機能を取得する方法がわからないvirtualenvのを作成します。
私の検索ではこの行を見つけましたが、python -m nltk.downloader all
は私のプログラムを満たしていますが、メモリを消費して不必要なものがたくさんダウンロードされています。しかし、その間に、私は実行して、それを試してみました:
- name: Get the nltk corpus
shell: "python -m nltk.downloader all"
が、これはメッセージを誤っ:
TASK [Get the nltk corpus]*****************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": "python -m nltk.downloader book", "delta": "0:00:00.016227", "end": "2016-12-29 20:06:09.156953", "failed": true, "rc": 1, "start": "2016-12-29 20:06:09.140726", "stderr": "/usr/bin/python: No module named nltk", "stdout": "", "stdout_lines": [], "warnings": []}
は、上記のコードの作業のいずれかを作成する方法上の任意の提案はありますか特定のnltk機能を有能な人に手渡すことで私の目標を達成する別の方法は?
UPDATE:
ほんの少し明確になるように、私はansible脚本で販売の外でのpythonシェルで正常に動作するコマンドを実行しようとしています。
たとえば、nltk.download("book")
という行は、Pythonターミナル内で必要と同じように動作します。しかし、私は手動でターミナルに入ることなく、また、不可能な演劇の中で仕事をすることなく、これを実行する必要があります。
私はこれに似たものを試しましたが、コンパイルしても実際には必要に応じて本コーパスをダウンロードしません。
- name: Get the "book" nltk corpus
shell: "/usr/local/venv/bin/python -m nltk.downloader book"
私は試してみるべき素晴らしい提案ですが、その文を修正する前に、私はそれを動かせるようにする必要があります。不可解なプレイブックのコードはコンパイルされません。 (上記のエラーメッセージを編集して追加しました) –
pipenパッケージをvirtualenvにインストールする場合、 'chdir'(' shell'モジュール用のパラメータがあります)を忘れずに、デフォルトのpythonインタプリタではなくローカルのPythonインタプリタを実行してください。 –
それはうまくいった!私は明示的に '/ path/in/venv/to **/** python ** -m nltk.downloader book'に存在していたpythonのパスを実行しなければならなかった。 ありがとう! –