使用NLTK而不安装

2024-09-30 16:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

使用自然语言工具箱学习Python非常有趣,它们在我的本地机器上运行得很好,尽管我必须安装几个包才能使用它。NLTK资源现在到底是如何集成到我的系统上的,对我来说仍然是个谜,尽管NLTK源代码并不是简单地放在Python解释器知道找到它的地方。在

我想使用我的网站上的工具箱,它是由另一家公司托管的。简单地将NLTK源代码文件上载到我的服务器并告诉根目录中的脚本“importnltk”是不起作用的;我有点怀疑它是否有效。在

那么,NLTK安装例程所做的与直接导入有什么区别,为什么直接导入不能访问工具箱?有没有办法在不改变主机Python的情况下使用NLTK源文件?在

非常感谢您的想法和留言。 -G


Tags: 文件服务器脚本机器源代码网站系统地方
3条回答

您不需要系统安装支持,只需要python可以找到它们的正确模块。我设置了没有系统安装权限的NLTK,但我有命令行访问权限,所以我可以看到我在做什么。在

为了让这个工作起来,你应该把一个本地安装放在你控制的计算机上,最好是一个从未安装过NLTK的计算机上,因为你可能忘记(或不知道)为你配置了什么。一旦您确定了需要什么,就将捆绑包复制到托管计算机上。但在这一点上,请检查您使用的模块版本是否适合Web服务器的体系结构。尤其是Numpy有不同的32/64位版本,IIRC。在

它也值得你花一点时间来弄清楚如何查看来自主机的错误消息。如果默认情况下看不到它们,可以捕获ImportError并显示它包含的消息,或者可以重定向stderr。。。这取决于你的配置。在

您不仅需要在PYTHONPATH(如@dhg points out)上使用NLTK,还需要它具有的任何依赖关系;快速的本地测试表明这实际上只是PyYAML。您应该使用pip来安装软件包。与手动找出所有依赖项并相应地调整PYTHONPATH相比,它更不容易出错。如果这是一个共享主机,您没有适当的权限来运行pip安装,您应该要求该主机为您执行此操作。在

为了解决问题中更一般的“安装脚本在做什么”部分:大多数Python包都是使用setup.py来管理的,它是在distutils(有时是setuputils)之上构建的。如果这是你真正感兴趣的东西,请查看The Hitchhiker’s Guide to Packaging。在

假设NLTK源位于/some/dir/,因此

dhg /some/dir/$ ls nltk
...
app
book.py
ccg
chat
chunk
classify
...    

您可以从nltk源目录所在的目录启动python解释器:

^{pr2}$

或者,您可以将其位置添加到PYTHONPATH环境变量中,这使得NLTK可以从任何位置获得:

dhg /whatever/$ export PYTHONPATH="$PYTHONPATH:/some/dir/"
dhg /whatever/$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
>>> import nltk

任何其他依赖项,包括NLTK依赖的依赖项,也可以用同样的方式添加到PYTHONPATH。在

相关问题 更多 >