我运行的不是 Windows 10,而是 Windows 8。但是,我想分享我最近几天了解到的关于在 64 位 Windows 平台上安装 NLTK 的问题,因为我相信它可能适用于这里(并且其他一些类似的问题)。
NLTK,最新版本 nltk-3.2.2.win32(msi 安装程序)将不会与本地 64 位 Python 主机一起安装(换句话说,如果您在 Windows 64 平台上并且之前决定安装64 位版本的 Python)。但是,它并没有告诉你。它抱怨说 Python 32 是必需的并且无法找到,然后不允许您输入 Python 安装的路径(我的是 ActivePython-2.7.10.12-win64-x64)。在Fix for NLTK install on Win 64 有一篇很好的帖子描述了大多数解决方案。
简而言之,您可以卸载 Python 64 位安装并安装 32 位,这是 NLTK 真正想要的,或者您可以尝试使用 pip install pyyaml nltk 在本地构建 NLTK 安装(请参阅我上面链接的帖子)。
我的贡献是补充一点,尽管您最终会安装 NLTK,但您可能仍然无法正确构建 pyyaml,因为它必须编译和构建 c 代码扩展(用于 c 中 Python 扩展的 Windows dll 将是 pyd 扩展而不是如果名称与系统上某处的另一个 dll 相交,则避免额外的混乱)。 Windows 系统有一组令人困惑的用户目录路径,并且编译器(即使您安装了 MSVC 并且知道如何使用它)通常在从 distutils 调用时找不到必要的库文件(称为 python 构建助手之一) )。您可以将错误输出保存在命令控制台会话中,并尝试手动将适当的配置文件指向本地路径,但在这种情况下,更简单的方法是简单地获取 pyyaml 尝试构建的正确编译文件。您上面的安装过程通常会继续并将 pyyaml python 文件(.py 文件)放在您的 site-packages 目录(在您的本地 Python 安装目录下),所以您需要做的就是获取编译文件,这恰好发生在将其命名为 _yaml.pyd,并将其插入到您的 yaml 目录(即上面的安装过程在我的 site-packages 目录中创建的目录),所有 pyyaml Python 文件都驻留在该目录中。
您可以在Python Packages, PyYAML 3.12 获取必要的文件。在该页面上,您将看到可用 PyYAML 包的列表。您应该选择与您的 Python、Windows 和 NLTK 要求一致的那个,在本例中是 PyYAML-3.12-cp27-cp27m-win_amd64.whl(因为我在 64 位 Windows 平台上运行 64 位 Python;如果你运行 32 位 Python 然后使用 win32 whl)。需要更多解释。这看起来更让人头疼,但实际上并非如此。 whl 文件只是一个 zip 包,您可以使用 7-Zip 或系统上的任何 zip 提取器提取它(右键单击下载的文件以探索可能性)。只需将其提取到您的桌面或类似设备上,您就会在其中找到三个项目。两个是您可以忽略的文件夹(您可能需要验证 yaml 文件夹是否具有与您在站点包目录中使用 pip 安装的文件相同的 .py 文件,但如果您正在安装最新的 NTLK,则应该是真的)。第三项是你的目标,_yaml.pyd。将其复制或移动到您的 ...site-packages/yaml/ 目录(我的是“C:\Python27\Lib\site-packages\yaml”)。不要担心所有其他文件都是 .py 或 .pyc 文件。它会在家里。这个 PyYAML 包的作者,Kirill Simonov,比平常更容易使用这个 c 扩展,在本地为你提供了一个 .py 文件(cyaml.py)的钩子。 cyaml.py 通过“from _yaml import CParser, CEmitter”导入所有 c 代码,因此很高兴找到您刚刚复制的 _yaml.pyd,而不会再烦恼。我昨天在执行这个策略和 NLTK 站点上提供的一些测试之后运行了 NLTK 单元测试,它相当高兴(只需要下载更多的语料库等,但如果你的第一个导入 nltk 作品)。
我注意到,当我只需要一个轮子包时,我曾在其他几个场合使用过这种诡计来避免笨拙的安装过程,也就是说,我刚刚得到了合适的轮子,提取了文件并将它们适当地放置在 Python 安装中(作为 Wheel 包格式的一个吸引人的特性提到的东西)。