首页 > 编程问答 >用pip安装模块失败,是否可以编辑版本?

用pip安装模块失败,是否可以编辑版本?

时间:2024-09-25 10:50:15浏览次数:9  
标签:python pip module

我正在尝试安装 pywallet

pip install pywallet

这在某些时候会失败:

  Downloading protobuf-3.0.0a3.tar.gz (88 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-_xihs08_/protobuf_2395cbc163b34a7cb79f530d9bda1b24/setup.py", line 29, in <module>
          from distutils.command.build_py import build_py_2to3 as _build_py
      ImportError: cannot import name 'build_py_2to3' from 'distutils.command.build_py' (/usr/lib/python3.12/site-packages/setuptools/_distutils/command/build_py.py)
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

我知道这不是 pip 错误,而是模块内的依赖项无法构建。 我在某处读到这是由于没有将版本修复为特定版本,建议是找到罪魁祸首并编辑 setup.py。

但是 - 据我所知,安装失败后,所有内容都被清理了向上。 我可以以某种方式下载这个东西,并手动编辑依赖项吗?

pip download pywallet 失败并出现相同的错误。


你是对的, pip download 在安装本身失败时通常也无法工作。 可以通过以下几种方式解决此问题,并编辑依赖项:

1. 使用 --no-clean 选项:

pip 有一个 --no-clean 选项,可以在安装失败后保留临时构建文件。 尝试运行以下命令:

bash pip install pywallet --no-clean

如果安装仍然失败,请查看 pip 创建的临时目录(通常是 /tmp/pip-install_[随机字符]/ )。 应该找到下载的 pywallet 源代码以及其依赖项。 可以编辑 pywallet setup.py 文件或相关的依赖项文件,然后尝试重新运行 pip install

2. 直接从源代码安装:

  • 从其代码仓库(例如 GitHub 或 PyPI)下载 pywallet 的源代码。
  • 解压缩下载的文件。
  • 打开 setup.py 文件,找到导致问题的依赖项,并编辑其版本号。
  • 打开终端,进入解压后的 pywallet 目录。
  • 运行 pip install . 来安装修改后的软件包。

3. 创建虚拟环境并使用 pip install -e

  • 创建一个虚拟环境: python3 -m venv .venv
  • 激活虚拟环境: source .venv/bin/activate
  • 使用 pip download 下载 pywallet 包。
  • 解压下载的包。
  • 修改解压后的包中 setup.py 文件中的依赖项版本。
  • 使用 pip install -e /path/to/unpacked/package 安装修改后的包,这将在“可编辑”模式下安装,这意味着对源代码的更改将立即反映在的环境中。

寻找合适的版本:

要找到导致问题的依赖项的正确版本,请查看以下内容:

  • pywallet 的文档或官方网站,看看它们是否指定了兼容的版本。
  • pywallet 的 GitHub 仓库,特别是提交历史记录、问题和拉取请求,以查看其他用户是否遇到过类似的问题并找到了解决方案。

请记住,编辑依赖项版本可能会导致兼容性问题,因此请谨慎操作。 如果可能,最好使用官方支持的版本或寻找替代方案。

标签:python,pip,module
From: 79020997

相关文章

  • 使用python创建一个微信聊天机器人
    使用python创建一个微信聊天机器人实现的功能如下笑话天气歇后语历史上的今天核心代码:#-*-coding:utf-8-*-fromrandomimportrandintimportitchatimportreimportrequestsemojis_love=["❤️","......
  • 非煤矿山风险监测预警系统 Python
    非煤矿山风险监测预警系统具有以下优势:非煤矿山风险监测预警系统通过在煤矿关键地点安装摄像机等设备利用智能化视频识别技术,能够实时分析人员出入井口的情况,监测矿井人数变化并检测煤矿生产作业状态,在矿井出入口、各作业区域等重要位置进行全方位监测,确保覆盖矿山操作过程中的关键......
  • 基于Python+Vue开发的电影订票管理系统
    项目简介该项目是基于Python+Vue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订票管理系统项目,大学生可以在实践中学习和提升自己的......
  • 基于Python+Vue开发的音乐推荐管理系统
    项目简介该项目是基于Python+Vue开发的音乐推荐管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的音乐推荐管理系统项目,大学生可以在实践中学习和提升自己的......
  • Python升级后找不到uwsgi模块
    我的家庭服务器上运行着Flask/UWSGI应用程序。最近的Ubuntu升级删除了Python3.10并安装了Python3.12。我已经创建了一个新的venv并安装了该应用程序,但它不再运行。在UWSGI日志中,它显示:ModuleNotFoundError:Nomodulenamed'wsgi'我的应用程序称为sieve,工作......
  • Chameleon 模板不替换 python 变量
    我是使用FastAPI和Python的Chameleon新用户。我在模板中有以下代码片段:${ag.name}在python代码中,我有一个类定义为:classAgeGroupInfo:definit(self,名称:str,检查:str):self.name=姓名self.checked=check视图字典包含AgeGroupInfo对象的列表......
  • 如何在 Python 中获得类似 Cron 的调度程序?
    我正在寻找一个Python库,它将提供at和cron类似的功能。我很想有一个纯Python解决方案,而不是依赖于安装在盒子上的工具;这样我就可以在没有cron的机器上运行。对于那些不熟悉cron的人:您可以根据如下表达式来安排任务:02**7/usr/bin/run......
  • 我找不到一种方法让我的 python print 语句在几秒钟后自行删除
    我正在尝试制作一款基于文本的冒险游戏,我希望能够让文本自行删除。举个例子,游戏将使用print()语句打印文本,5秒后文本将被删除或对玩家隐藏。我试图找到其他人与此问题相关的问题,并且我找不到任何信息。我不知道该使用什么命令或与之相关的任何内容,请帮忙。Ivetriedtof......
  • 在 python 中可视化四元数
    我在无人机上安装了一个IMU,每0.1秒收集一次四元数数据(w,x,y,z)。现在我想将四元数数据与实际的无人机方向(视频数据)进行比较。所以我想创建某种盒子对象来显示基于四元数数据的方向。我实现了以下教程,将四元数转换为欧拉以进行可视化:https://www.youtube.com/watch?......
  • 有没有办法在 python 中获取特定的键盘输入
    我正在为学校开发一个项目,它目前有行输入(“按Enter继续”),它可以工作,但只要用户按Enter键程序继续,输入是什么并不重要,而且我我希望它仅在按下特定键时才起作用。我查了一下,曾经有一个键盘模块,但由于某种莫名其妙的原因它被删除了,那么还有其他方式获取输入吗?你绝对可以......