我正在打包一个使用nltk的项目。当你用 pip 安装 nltk 时,你会获得核心功能,但不是它附带的所有模块。要获取这些模块,您可以调用 nltk 的下载方法。
我尝试了以下方法,但它不起作用,提示 ImportError: No module named nltk
。我假设发生这种情况是因为导入 nltk 发生在通过调用 setup(...)
安装 nltk 之前。
有没有一种干净的方法可以使用 distribute 进行安装后步骤?执行以下操作之一?
$ 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},
)
最佳答案
pip 不处理依赖项,因此您需要编写一个 README 文件并向您的用户解释他们需要安装什么,或者一个脚本来运行 pip install 来安装您需要的所有东西。
第二种方法是我认为的方法,以及解释正在发生的事情的 README 文件。
作为一名 debian 维护者,我可以告诉你,执行一个下载东西的安装命令在那里被认为是 Not Acceptable ,它必须被打包列出对其他包的依赖关系,然后如果满足依赖关系则安装你的,我认为这是一种明智的总体处理方式。 http://wiki.debian.org/UpstreamGuide#No_Downloads
关于Python打包分发安装后步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15347602/