我在项目中使用带有wordnet的NLTK。我在我的电脑上手动安装了pip:
在终端中pip3 install nltk --user
,然后在python shell中nltk.download()
下载wordnet。
我想用setup.py文件来创建这些文件,但我不知道安装wordnet的好方法。
目前,我在调用setup
(" nltk"在install_requires
setup
号召唤列表中)之后有了这段代码:
import sys
if 'install' in sys.argv:
import nltk
nltk.download("wordnet")
有更好的方法吗?
答案 0 :(得分:7)
我设法通过使用我自己的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()
以确保在调用import nltk
之前安装nltk非常重要(另请参阅此处python setuptools install_requires is ignored when overriding cmdclass)。另外,请不要忘记将nltk
添加到setup_requires
。
答案 1 :(得分:2)
您还可以使用shell脚本自动安装,例如,运行(在pip安装nltk之后):
python -m nltk.downloader -d /usr/share/nltk_data wordnet