【问题标题】:I installed a package outside virtual environment but cannot use it in the virtual environment我在虚拟环境之外安装了一个包,但无法在虚拟环境中使用它
【发布时间】:2020-04-14 15:45:49
【问题描述】:

我已经在使用 pipenv 创建的虚拟环境之外安装了 Pillow 包。但是当我尝试在这个环境中为我的 django 项目进行迁移时,它说 Pillow 没有安装并要求安装它。我想我在全球范围内安装了枕头,但 pipenv 虚拟环境无法访问它。我正在使用 python 3.8 并使用 sublime3 作为编辑器。

【问题讨论】:

  • 你能从你的venv中打印出sys.path吗?你的全球枕头在哪里?
  • 按设计,virtualenvs 无法访问系统范围内安装的模块。要防止这种行为,请在创建 virtualenv 时使用--system-site-packages。对于 pipenv,我认为标志是 --site-packages
  • 正确。可以按照上面的建议使用 --system-site-packages 重新创建一个新的 python 环境以包含全局包。然后,如果您希望仅在您的环境中使用软件包,请确保在进行 pip 安装之前激活您的环境
  • @AzamatGalimzhanov 我可以在我的 venv 中打印出 sys.path。全局枕头的位置是 c:\Program Files\Python38\Lib\Site-packages,我应该将此路径添加到我的 venv 吗?如何?
  • 解决了。我在 pyvenv.cfg 文件中将 include-system-site-packages 更改为 true

标签: python django sublimetext3 pipenv virtual-environment


【解决方案1】:

全局安装的包在虚拟环境中不可用。 您可以使用命令python -m pip install Django 安装 django。 使用pip list 列出所有可用的已安装包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2017-04-10
    • 2019-04-27
    相关资源
    最近更新 更多