将.whl Python包安装到默认目录以外的特定目录中

Mar*_*yck 12 python

我正在尝试将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参数.我已相应地改变了接受的答案.

tut*_*uju 6

为什么会这样

pip install从源代码运行时,它会调用一个构建过程,该过程运行setup.py脚本并传递给它--install-option.

然而,安装轮子不会调用此构建过程,也没有做出关于支持这些用例的决定(参见正在进行的讨论).

可能解决方案

然而,pip install 没有当前支持安装与选项自定义位置--user和--root,可以实现你在找什么.

注意事项

正如评论中所提到的,在使用时检测软件包是否已经安装似乎存在问题--root,并且解决方法可能是使用--upgrade或--ignore-installed选项.

另外,使用--root将安装模块user_defined_path/python34/Lib/site-packages/.这使得此选项对于在不同的驱动器或非默认的python安装上安装库非常有用,但不允许安装到特定目录中的特定文件夹.


Mih*_*otă 5

您可以使用--prefix选项中pip install,可用自8版本:

- 字首

Installation prefix where lib, bin and other top-level folders are placed
Run Code Online (Sandbox Code Playgroud)

请注意,pip uninstall没有--prefix选项,因此没有明显的方法来卸载以这种方式安装的软件包.作为解决方法,设置PYTHONUSERBASE为前缀目录,例如:

PYTHONUSERBASE=prefix-dir python3 -m pip uninstall package-name
Run Code Online (Sandbox Code Playgroud)