将.whl Python包安装到默认

时间:2015-08-13 03:29:13

标签: python

我正在尝试将64位版本的NTLK安装在.whl文件中,该文件位于与标准python34 / Lib文件夹不同的目录中。我使用的是Windows 10 64位和Python 3.4 64位。

我首先尝试使用this question中的说明(适用于其他模块)。

我输入CMD的命令是:

py -m pip install --install-option="--prefix=$PATH_NAME" nltk-3.0.4-py2.py3-none-any.whl

它立刻给了我以下错误:

UserWarning:由于使用了--build-options / --global-options / --install-options,禁用了所有轮子的使用。

似乎我无法使用--install-option安装WHL文件。我是否可以在非默认目录中安装.whl软件包?

编辑:我将此标记为已解决,因为建议的解决方案允许我在自己的用例中执行我需要的操作。但是,由于使用--root选择备用目录的固有限制,它并没有完全回答这个问题。从技术上讲,这个问题没有正确的解决方案,详见答案的评论。

编辑 - 2017年3月3日:看起来此问题已在PIP 8.0版中解决,并添加了--prefix参数。我已相应地更改了接受的答案。

3 个答案:

答案 0 :(得分:5)

为什么会发生

从源代码运行pip install时,它会调用a build process,它运行setup.py脚本并将传递的--install-option传递给它。

然而,安装轮子不会调用此构建过程,也没有做出关于支持这些用例的决定(参见the ongoing discussion)。

可能的解决方案

但是,pip install 目前支持使用选项--user--root安装到自定义位置,这可能会实现您的目标。

注意事项

正如评论中所述,使用--root时似乎an issue检测到软件包是否已安装,并且解决方法可能是使用--upgrade或{{1} } options。

此外,使用--ignore-installed会将模块安装到--root。这使得此选项对于在不同的驱动器或非默认的python安装上安装库非常有用,但不允许安装到特定目录中的特定文件夹。

答案 1 :(得分:5)

您可以使用自--prefix option以来可用的Installation prefix where lib, bin and other top-level folders are placed --prefix

  

- 前缀

PYTHONUSERBASE=prefix-dir python3 -m pip uninstall package-name

请注意,version 8没有SELECT * FROM tblexample1 JOIN tblexample2 ON tblexample1.unique_id = tblexample2.unique_id ORDER BY colour; 选项,因此没有明显的方法来卸载以这种方式安装的软件包。要解决此问题,请将pip uninstall设置为前缀目录,例如:

var global_array = [];

function pushIntoArray(){
  global_array.push({"id":1, "value":"example1"}, {"id":2, "value":"example2"});
}

function getArrayValues(){
   console.log(global_array);
}

答案 2 :(得分:0)

查看解决问题的另一种方法是使用7-zip并解压缩解压缩目录中的whl文件将为您提供python模块的正确文件夹,然后您可以将其复制并粘贴到任何地方