python - 尝试使用 python-apt API 安装包时出错

标签 python ubuntu apt

我找到了我需要的代码。来自此链接:How to install a package using the python-apt API

#!/usr/bin/env python
# aptinstall.py

import apt
import sys

pkg_name = "libjs-yui-doc"

cache = apt.cache.Cache()
cache.update()   # error is in this line

pkg = cache[pkg_name]
if pkg.is_installed:
    print "{pkg_name} already installed".format(pkg_name=pkg_name)
else:
    pkg.mark_install()

    try:
        cache.commit()
    except Exception, arg:
        print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))

但是我无法让它工作。我在网上搜索了一下这个问题。据说应该没有包管理器、apt、pip 等处于事件状态才能使用此代码。但是,我的电脑上没有打开包管理器、apt、pip 等。我认为当计算机启动时,某些包管理器可以处于事件状态。所以我输入了

 ps -aux 

在终端中查看事件进程,但我没有看到任何与包管理器相关的事件进程(我对此不是百分百确定,因为我不知道的任何进程都可能与包管理器相关) .但是我怎么知道呢?) 总而言之,我启动了计算机并只打开了终端。然后我输入 python aptinstall.py 并按 Enter 键。我遇到以下错误:

Traceback (most recent call last):
  File "aptinstall.py", line 7, in <module>
    cache.update()
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 397, in update
    raise LockFailedException("Failed to lock %s" % lockfile)
apt.cache.LockFailedException: Failed to lock /var/lib/apt/lists/lock

我通过在终端中发出命令来删除锁定: 须藤 rm/var/lib/dpkg/lock 也没有成功。

我该如何解决这个问题?任何想法将不胜感激。

最佳答案

请尝试在 ps 中查找 update-manager。它会定期自动运行,因此可能会锁定 apt 数据库。

关于python - 尝试使用 python-apt API 安装包时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595303/

相关文章:

docker - 如何处理临时 apt-key adv 故障?

python - 将 cookie 附加到请求

python - 如何为两个图像之间的映射建模? (Python,OpenCV)

node.js - 从/usr/local/bin/node 卸载 Node

web-services - 作为服务器端运行可执行文件 "script"

ubuntu - 如何使用 libcurl 和 C : 从 IMAP 服务器读取消息

objective-c - 在 MobileSafari 中实现 apt

python - brew 卸载 python 错误 : Refusing to uninstall

python - 是否可以在 Python 中的 Azure Function Linux 消费计划中保存临时文件?

linux - 无法在 Linux 中将 cabal 升级到最新版本