【问题标题】:Install python-numpy in the Virtualenv environment在 Virtualenv 环境中安装 python-numpy
【发布时间】:2013-08-13 08:27:03
【问题描述】:

我想在 Virtualenv 环境中安装 python-numpy。我的系统是 Ubuntu 12.04,我的 python 是 2.7.5。首先我通过

安装了 Virtualenv
$ sudo apt-get install python-virtualenv

然后通过设置环境

$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.

激活它

$ . venv/bin/activate

在环境中安装了python-numpy

$ sudo apt-get install python-numpy

但是,经过上述所有步骤后,我尝试在环境中的 python 中导入 numpy。 Python 告诉我“没有名为 numpy 的模块”。而 numpy 可以在 Python 中全局导入。我尝试删除和安装很多次,但它不起作用。我是 Python 和 Linux 的初学者。

【问题讨论】:

  • 尝试设置环境变量PYTHONPATH指向你的numpy模块所在的文件夹,在Windows中是C:\Python27\Lib\site-packages
  • 您能告诉我如何设置 PYTHONPATH 吗?我是一个非常初学者。谢谢
  • 尝试:export PYTHONPATH=path_to_site_packages... 让我知道这是否有效...
  • @SaulloCastro 非常感谢!有用!这让我困惑了很多天!
  • 我将其作为答案发布,以便您可以接受... ;)

标签: python numpy ubuntu-12.04 virtualenv


【解决方案1】:

apt-get 仍将在全局范围内安装模块,即使您使用的是新的 virtualenv。

您应该在虚拟环境中使用pip install numpy(最简单的方式),或者使用源目录根目录下的setup.py 文件从源代码编译和安装numpy(稍微困难的方式,@987654321 @)。

我还强烈建议您查看virtualenvwrapper,这使得管理虚拟环境更加友好。

编辑:

您不应该不使用sudo 来创建您的虚拟环境或在其中安装东西 - 它是您主文件夹中的一个目录,您不需要提升权限即可进行更改给它。如果您使用sudo,pip 将更改您的全局站点包,而不是您的虚拟环境,因此您无法在本地安装 numpy。

要考虑的另一件事是 默认情况下,新的 virtualenvs 将继承自全局 site-packages - 即如果 Python 在您的 virtualenv 中本地找不到模块,Python 也会在您的全球网站包 *。在您的情况下,由于您已经全局安装了numpy(使用apt-get),当您尝试在虚拟环境中使用pip install numpy 时,pip 会看到numpy 已经在您的Python 路径中并且没有不要在本地安装。

你可以:

  1. 在创建 virtualenv 时传递 --no-site-packages 选项。这可以防止新的virtualenv 继承全局站点包,因此必须在本地安装所有内容。

  2. 强制pip 在本地安装/升级numpy,例如使用pip install -U --force numpy


* As of v1.7,virtualenv 的默认行为是不包含全局 site-packages 目录。您可以通过在创建新虚拟环境时传递 --system-site-packages 标志来覆盖它。

【讨论】:

  • 感谢您的帮助。我尝试在 virtualenv 中使用 pip。已经成功安装(成功安装numpy清理...),但是当我在virtualenv中导入numpy时,我直到没有工作。
  • 您能检查一下numpy 目录是否存在于venv/lib/python2.7/site-packages/ 中吗?
  • 当你在你的virtualenv 中时,你也可以检查which python 的输出 - 它应该给你类似/home/myname/myproject/venv/bin/python 的东西,而不是你的全局python。
  • 不,它不存在,但是为什么它说安装成功:(
  • 其中python的输出为“/home/kevin/python/Python-2.7.5/myproject/flask/venv/bin/python”
【解决方案2】:

为站点包使用 PYTHONPATH 确实违背了 virtalenv 的目的。对我有用的是指定我希望通过 pip 安装软件包的环境

示例:

pip -E /home/proj1 

proj1 是使用 virtualenv 创建的。

参考:how to install numpy in a virtualenv

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 2017-05-26
    • 2018-09-03
    • 2018-12-12
    • 1970-01-01
    • 2012-05-17
    • 2011-03-04
    • 2018-11-14
    相关资源
    最近更新 更多