python - 通过ansible playbook在python终端中运行命令

标签 python nltk ansible

我是 ansible 新手,但我正在尝试通过 ansible 剧本在 python 终端内运行一些命令。具体来说,我想下载一个语料库。

$python
>import nltk
>nltk.download
> ~ d (download)
> ~ book
> ~ q (quit)
>quit()

目前,我的 playbook 文件创建了一个 virtualenv,通过 requirements.txt 安装 nltk,但我不知道如何在不手动下载的情况下获取特定的 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": []}

对于如何使上述代码工作,或者通过 ansible 获取特定 nltk 功能来实现我的目标的其他方法,有什么建议吗?

<小时/>

更新:

为了更清楚一点,我正在尝试运行一个可以在 ansible playbook 中的 sell 之外的 python shell 中正常工作的命令。

例如,nltk.download("book") 行的工作原理与我在 python 终端中需要的完全一样。但我需要在不手动输入终端并通过 ansible playbook 中的任务的情况下运行它。

我尝试过类似的方法,虽然它可以编译,但它实际上并没有按照我的需要下载图书语料库。

- name: Get the "book" nltk corpus
  shell: "/usr/local/venv/bin/python -m nltk.downloader book"

最佳答案

Documentationsource code提示您可以下载各个模块:

Individual packages can be downloaded by calling the download() function with a single argument, giving the package identifier for the package that should be downloaded

如果 book 是您示例中的一个包(我不熟悉 NLTK),请尝试:

- name: Get the nltk corpus
  shell: "python -m nltk.downloader book"

关于python - 通过ansible playbook在python终端中运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386319/

相关文章:

Ansible SHA1 加密变量

Ansible设置mysql root密码

ansible - 读取使用ansible的tempfile模块创建的目录名称

python - 将 2 个字典列表合并到一个字典列表中

python - 如何使用python实现 `Unary function chainer`?

Python,导入错误 : cannot import name AbstractLazySequence

python - 绘制词频和 NLTK

python - 使用 NLTK 生成字典以将推文分类为预定义的类别

python - 根据条件创建列

machine-learning - 查找两个短句子或文章之间语义相似性的最新方法(在概念级别)