【问题标题】:How to install/uninstall with pip to specific python folder?如何使用 pip 安装/卸载到特定的 python 文件夹?
【发布时间】:2012-08-31 15:00:29
【问题描述】:

我有一个特定的 python2.7 文件夹,我想在其中使用 pip 安装软件包。默认的python安装是python 2.6

我设法用<python2.7Folder>/pip -t ... numpy 安装了numpy。问题是它使用默认的 python 2.6 库编译,而不是它不起作用。 当我尝试从 python 2.7 运行 numpy 时,我得到了这个:undefined symbol: _PyUnicodeUCS4_IsWhitespace ... expectable.

所以我尝试卸载它,但由于它试图从默认的 python 安装中卸载它,所以无法卸载。

File "/usr/local/lib/python2.6/dist-packages/pip-1.1-py2.6.egg/pip/req.py", line 410, in uninstall
    raise UninstallationError("Cannot uninstall requirement %s, not installed" % (self.name,))

问题是:

  • 如何首先从特定文件夹、特定 python 路径卸载 numpy 包。
  • 如何重新安装 numpy,这个 itme 使用 python 的特定路径包括?

【问题讨论】:

  • Python有两种安装方式,默认是python2.6,特定文件夹下是python2.7。正确安装了 python2.7 lib 文件夹,但在编译期间它使用了 python2.6 包含文件夹。我需要的是不卸载并使用正确的包含文件夹。
  • 问题已解决。在这里为所有来这里寻找相同答案的人提供答案。在 $PATH 列表中添加了 python2.7 文件夹作为第一个文件夹。编辑 pip 文件使其指向预期的 python 二进制文件(脚本的第一行)现在一切正常。

标签: python pip directory


【解决方案1】:

要在 Python2.7 下安装库,您需要“2.7”版本的 pip。换句话说,pip 必须使用python2.7 本身。

你可以用这个检查 pip 使用的是哪个 python 版本:

$ head -1 `which pip`
#!/home/lbolla/.virtualenvs/work/bin/python2

无论如何,我强烈建议你使用virtualenv,这样你就可以随时创建一个新的虚拟环境,并且不会被包污染python的系统目录。

最后,您应该能够使用pip uninstall <package> 卸载使用pip 安装的软件包。

【讨论】:

  • 我确实使用 python 2.7 pip 安装,使用正确的二进制文件,而不是默认值。安装中必须有一些选项来强制特定的 python 文件夹位置。如问题中所述,删除不起作用,因为即使使用正确的 python 2.7 pip 二进制文件,它也会运行默认的错误 python 二进制文件
  • virtualenv 的使用可能没有帮助。根据我对 virtualenv 的理解,它为一个 python 安装创建了多个环境。我在单独的文件夹中安装了两个 Python 实例,并希望在非标准的文件夹上安装 pip。
  • pip install --target=DIR 安装到 DIR
【解决方案2】:

如果你创建 virtulenv 并在那里做所有事情会更好。

例如,如果你想为 python 2.6 安装 numpy,你应该这样做


$easy_install-2.6 虚拟环境

$virtualenv-2.6 python26

$source python26/bin/activate

$easy_install numpy 或 $ pip install numpy


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2018-07-27
    • 2014-03-29
    • 2021-05-01
    • 2012-10-22
    • 2018-06-28
    • 2021-12-03
    相关资源
    最近更新 更多