【问题标题】:Confusion with virtualenvs and Python packages与 virtualenvs 和 Python 包混淆
【发布时间】:2017-12-05 05:02:23
【问题描述】:

在我的 python 程序中(由使用 python3.5 的 virtualenv 运行),我需要使用 Pillow 库来处理图像。

ImportError: 没有名为“Pillow”的模块

告诉我 Pillow 没有安装在 virtualenv 中。

但是,当我运行pip install Pillow 时,我又回来了:

要求已经满足:枕头在 /usr/lib/python3/dist-packages

如果我使用的 pip 来自 virtualenv,那么它为什么要查看 /usr/lib/python3/dist-packages 来检查包是否已安装?

为了确保,我运行 type pythontype pip 来确认这两个程序来自我的 virtualenv,它们是:

python 被散列(/home/nelson/.virtualenvs/MainEnv/bin/python)

pip 被散列(/home/nelson/.virtualenvs/MainEnv/bin/pip)

sudo 在创建 virtualenv 时没有使用(我知道,因为这已经给我造成了问题)或尝试pip install;那么这个逻辑的缺陷在哪里呢?如何在我的 virtualenv 中安装 Pillow / 如何导入 Pillow?

【问题讨论】:

  • 您是否使用--system-site-packages 选项创建了虚拟环境?
  • @falsetru 是的,我做到了

标签: python-3.x ubuntu pip virtualenv


【解决方案1】:

如果您使用--system-site-packages 创建了虚拟环境,则该虚拟环境可以访问全局站点包模块。

如果您不想这样做,则需要重新创建不带--system-site-packages 选项的虚拟环境。

【讨论】:

  • 我一直以为--system-site-packages 只是为virtualenv 复制了软件包。非常感谢!
  • 这确实解决了我将 Pillow 安装到 virtualenv 的问题,但我仍然无法导入它。
  • @Nelson,请发布带有详细错误消息的单独问题。
【解决方案2】:

Pillow 是 PIL 的一个分支。因此from PIL import Image。见https://pillow.readthedocs.io/en/4.2.x/handbook/tutorial.html

【讨论】:

    猜你喜欢
    • 2014-10-31
    • 1970-01-01
    • 2013-04-18
    • 2013-01-25
    • 2022-01-17
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多