python-dev安装错误:ImportError:没有名为apt_pkg的模块

我是Debian用户,我想安装python-dev,但是当我在shell中以root身份运行代码时:

# aptitude install python-dev 

我得到以下错误:

 Traceback (most recent call last): File "/usr/bin/apt-listchanges", line 28, in <module> import apt_pkg ImportError: No module named apt_pkg 

什么似乎是这个问题,我该如何解决呢?

Solutions Collecting From Web of "python-dev安装错误:ImportError:没有名为apt_pkg的模块"

确保你有一个工作的python-apt软件包。 您可以尝试删除并重新安装该软件包,以解决apt_pkg.so无法找到的问题。

 apt-get install python-apt 

我在做sudo apt-get update时候遇到了这个问题。 我的环境是debian8,python2.7 + 3.4(默认)+ 3.5。

以下代码将只为python 3.5重新创建一个apt_pkg....so文件

 sudo apt-get install python3-apt --reinstall 

下面的代码解决了我的问题,

 cd /usr/lib/python3/dist-packages sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so 

所以,显然,python3-apt会检查最高的python版本,而不是当前使用的python版本。

我最近在使用Ubuntu Quantal的Aptana Studio中运行Python 3.3.0脚本时遇到了同样的问题。 除了我正在处理的脚本的错误之外,我还得到了以下内容:

 Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File "/usr/lib/python3/dist-packages/apport/__init__.py", line 4, in <module> from apport.report import Report File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> import apport.fileutils File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> from apport.packaging_impl import impl as packaging File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module> import apt File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module> import apt_pkg ImportError: No module named 'apt_pkg' 

我尝试删除,清理,清除和重新安装python3-apt,以及一些窥探,我发现这个错误只影响Python 3.3.0。 尝试在IDLE中导入apt_pkg的同样的错误。 有趣的是,使用Python 3.2.3的IDLE导入这个工作正常。 另外,这两个版本的Python 3.xx共享相同的/usr/lib/python3/dist-packages ,其中包含apt_pkg.cpython-32mu.soapt_pkg.cpython-32dmu.so 。 这些文件是不是与Python 3.3.0兼容?

最后一件事,在Aptana Studio以外的地方运行脚本给了我脚本的错误,没有ImportError: No module named 'apt_pkg'

出于某种原因,我的安装缺少python3 dist-packages目录中的apt_pkg.so 。 ( apt_pkg.cpython-33m-x86_64-linux-gnu.so在那里?!)但是我必须在/usr/lib/python3/dist-packages创建一个符号链接apt_pkg.so -> apt_pkg.cpython-33m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages

我不确定我的升级是否被破坏,或者为什么会出现这种情况。 它尝试升级后(精确 – > raring->量子升级)

解决这个问题:

/usr/lib/python3/dist-packages# cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so

如果您使用python 3.5,则降级到3.4。 这是最安全的做法。

/usr/lib/python3/dist-packages你会看到python 3.5不能使用的*34m* 。 zhazha回答它的符号链接。