【问题标题】:How do I tell pipenv to use a library that is installed locally?如何告诉 pipenv 使用本地安装的库?
【发布时间】:2019-03-15 20:06:36
【问题描述】:

尝试使用 neopixel 库。看起来它不能用 pipenv 安装,因为我得到了:

TypeError: 'module' object is not callable

当我尝试安装时:

PIPENV_TIMEOUT=300 pipenv install -e git+https://github.com/jgarff/rpi_ws281x.git#egg=neopixel\&subdirectory=python

所以我尝试在此处按照以下说明安装 neopixel 库:

https://learn.adafruit.com/neopixels-on-raspberry-pi/software

而且效果很好。个人项目和演示都可以正常运行。

但是...我现在正在尝试将一些使用 neopixel 库的代码与我通过 pipenv 安装的其他一些库集成。 (作为最佳实践)

我的 Pipfile 中没有提到 neopixel(如上所述,如果没有该错误,则无法通过 pipenv 安装它)

但是当我运行我的程序时: pipenv run python foo.py

它抱怨缺少新像素库。

我如何告诉 pipenv “尽管我的大多数库都使用虚拟环境,但在虚拟环境中找不到这个 一个,但它是否在操作系统上全局找到”?

【问题讨论】:

  • 您使用的是哪个版本的pip?我在使用pippipenv 的最新版本时遇到了一些问题
  • pip 版本为 18.1
  • pipenv 版本 2018.7.1
  • 尝试将您的点子降级到版本 18.0.0 - pipenv run pip install pip==18.0.0 然后重试
  • 18.0.0 不走运,同样的错误。

标签: python pip virtualenv pipenv


【解决方案1】:

这个解决方案来得有点晚,但我遇到了与 'numpy' 包完全相同的问题,无法在 raspberrypi 上使用 pip 安装。

对于任何有同样问题的人,这里是解决方法:使用以下命令重新安装新环境:

pipenv --three --site-packages

来自pipenv官方docs

使用平台提供的 Python 组件

对于操作系统接口的特定平台 Python 绑定来说,仅通过系统包管理器可用是很常见的,因此无法通过 pip 安装到虚拟环境中。在这些情况下,可以通过访问系统站点包目录来创建虚拟环境:

$ pipenv --three --site-packages

【讨论】:

    【解决方案2】:

    此错误是由最新版本的 pip — v18.1 引起的。 因此,如果您使用 pip 18.1(pip --version 检查版本),您需要降级到以前的版本,即 v18 才能使其正常工作。

    运行以下命令进行降级:

    pipenv run pip install pip==18.0

    参考 GitHub 问题:pip 18.1 causes "TypeError: 'module' object is not callable" #2924

    【讨论】:

      猜你喜欢
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      相关资源
      最近更新 更多