Skip to main content
 首页 » 编程设计

Python打包分发安装后步骤

2025年05月04日8EasonJim

我正在打包一个使用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