对于Python来说,我是一个新手,因此我事先请求原谅:).也就是说,我正在尝试制作一个脚本,除其他外,安装一些Linux软件包.首先我想解释为使用subopen 这里.虽然这最终可以工作,但我偶然发现了python-apt API,因为我不是一个大粉丝或重新发明轮子,我决定尝试一下.
当尝试使用python-apt查找有关安装软件包的示例/教程时出现问题.在搜索文档时,我发现了包含一些安装包的方法的PackageManager类.我尝试了一些简单的代码来实现这个目的:
apt_pkg.PackageManager.install("python")
Run Code Online (Sandbox Code Playgroud)
这似乎不那么容易,安装方法需要apt_pkg.PackageManager而不是普通的String.因此,看起来更多,我发现这个看起来很有希望的例子,但我有点不愿意使用,因为我不太了解那里发生的一些事情.
那么,有没有人试图使用python-apt安装包,还是应该使用普通的子打开方式?
谢谢!
Aus*_*ips 33
建议使用Debian软件包中的apt模块python-apt.这是基础C/C++ libapt-xxx库的更高级别的包装器,并具有Pythonic接口.
这是一个安装libjs-yui-doc包的示例脚本:
#!/usr/bin/env python
# aptinstall.py
import apt
import sys
pkg_name = "libjs-yui-doc"
cache = apt.cache.Cache()
cache.update()
cache.open()
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))
Run Code Online (Sandbox Code Playgroud)
与使用时一样apt-get,必须以超级用户权限运行才能访问和修改APT缓存.
$ sudo ./aptinstall.py
Run Code Online (Sandbox Code Playgroud)
如果您正在尝试将程序包安装作为更大脚本的一部分,那么在最短时间内只提高root权限可能是个好主意.
您可以在/usr/share/pyshared/apt/progress/gtk2.py:_test()函数中找到一个小示例,演示如何使用GTK前端安装软件包.
| 归档时间: |
|
| 查看次数: |
17871 次 |
| 最近记录: |