我找到了我需要的代码。它来自此链接:如何使用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
在终端中查看活动的进程,但我没有看到任何与程序包管理器相关的活动进程(我对此不确定100%,因为我不知道的任何进程都可能与程序包管理器相关。但是如何我能知道吗?)总而言之,我启动了计算机并仅打开了终端。然后,我输入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
我通过在终端中输入命令来删除锁:sudo rm / var / lib / dpkg / lock也不起作用。
我怎么解决这个问题?任何想法将不胜感激。
导致此错误的原因有三种。
1-如前所述,如果有任何程序包管理器正在运行(例如; pip,apt-get,synaptic等),它将给出错误。
2-如果您在虚拟机中使用ubuntu,则会导致相同的错误。
3-如果您在没有root特权的情况下运行程序,则将导致相同的错误。例如,如果使用“ python aptinstall.py”运行程序,则会出现错误,使用“ sudo python aptinstall.py”运行程序是正确的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句