Я новичок в вопросе, но я пытаюсь запустить несколько команд внутри терминала python через прослушиваемую книгу. В частности, я хочу загрузить корпус.Запустить команды в терминале python через загружаемую playbook
$python
>import nltk
>nltk.download
> ~ d (download)
> ~ book
> ~ q (quit)
>quit()
В настоящее время мой файл Playbook создает virtualenv, который устанавливает NLTK через requirements.txt
, но я не знаю, как получить конкретную функцию NLTK без вручную загрузив его.
Я просмотрел эту строку в моем поиске, 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:
Просто чтобы быть немного понятнее, я пытаюсь выполнить команду, которая будет работать нормально в питона оболочки вне продавать в анзибль пьес.
Например, линия nltk.download("book")
работает именно так, как мне нужно, внутри терминала python. Но мне нужно запустить это без ввода терминала вручную и с помощью задачи в незанятой пьесе.
Я пробовал что-то похожее на это, и хотя он компилируется, он фактически не загружает корпус книги так, как мне это нужно.
- name: Get the "book" nltk corpus
shell: "/usr/local/venv/bin/python -m nltk.downloader book"
Это замечательное предложение, которое я попробую, но прежде чем я смогу изменить это утверждение, мне нужно, чтобы он работал. Код в незанятой пьесе не компилируется. (Я отредактировал и добавил сообщение об ошибке выше) –
Если вы устанавливаете пакеты pip в virtualenv, не забудьте указать 'chdir' (есть параметр для модуля' shell') и запустить локальный интерпретатор python, а не python по умолчанию , –
Это сработало! Мне пришлось запустить путь к питону, который существовал в virtualenv явно '/ path/in/venv/to/** python ** -m nltk.downloader book' Большое спасибо! –