我正在尝试将64位版本的NTLK安装在.whl文件中,该文件位于与标准python34/Lib文件夹不同的目录中.我使用的是Windows 10 64位和Python 3.4 64位.
我首先尝试使用此问题中的说明(适用于其他模块).
我输入CMD的命令是:
py -m pip install --install-option="--prefix=$PATH_NAME" nltk-3.0.4-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)
它立刻给了我以下错误:
UserWarning:由于使用了--build-options/--global-options/--install-options,禁用了所有轮子的使用.
看来我无法使用--install-option安装WHL文件.是否有另一种方法可以将.whl软件包安装在非默认目录中?
编辑:我将此标记为已解决,因为建议的解决方案允许我在自己的用例中执行我需要的操作.但是,由于使用--root选择备用目录的固有限制,它并没有完全回答这个问题.从技术上讲,这个问题没有正确的解决方案,请参阅答案的评论以获取详细信息.
编辑 - 2017年3月3日:看起来此问题已在PIP 8.0版中解决,并添加了--prefix参数.我已相应地改变了接受的答案.
pip install从源代码运行时,它会调用一个构建过程,该过程运行setup.py脚本并传递给它--install-option.
然而,安装轮子不会调用此构建过程,也没有做出关于支持这些用例的决定(参见正在进行的讨论).
然而,pip install 没有当前支持安装与选项自定义位置--user和--root,可以实现你在找什么.
正如评论中所提到的,在使用时检测软件包是否已经安装似乎存在问题--root,并且解决方法可能是使用--upgrade或--ignore-installed选项.
另外,使用--root将安装模块user_defined_path/python34/Lib/site-packages/.这使得此选项对于在不同的驱动器或非默认的python安装上安装库非常有用,但不允许安装到特定目录中的特定文件夹.
您可以使用--prefix选项中pip install,可用自8版本:
- 字首
Run Code Online (Sandbox Code Playgroud)Installation prefix where lib, bin and other top-level folders are placed
请注意,pip uninstall没有--prefix选项,因此没有明显的方法来卸载以这种方式安装的软件包.作为解决方法,设置PYTHONUSERBASE为前缀目录,例如:
PYTHONUSERBASE=prefix-dir python3 -m pip uninstall package-name
Run Code Online (Sandbox Code Playgroud)