[英]error while trying to install a package using the python-apt API
我找到了我需要的代碼。 它來自此鏈接: 如何使用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也不起作用。
我怎么解決這個問題? 任何想法將不勝感激。
請嘗試在ps
查找update-manager
。 它會定期自動運行,因此可能會鎖定apt db。
有三種不同的原因導致此錯誤。
1-如前所述,如果有任何程序包管理器正在運行(例如; pip,apt-get,synaptic等),它將給出錯誤。
2-如果您在虛擬機中使用ubuntu,則會導致相同的錯誤。
3-如果您在沒有root特權的情況下運行程序,則將導致相同的錯誤。 例如,如果使用“ python aptinstall.py”運行程序,則會出現錯誤,使用“ sudo python aptinstall.py”運行程序是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.