我的Debian用户,我想安装python-dev的,但是当我运行shell作为根的代码:
# 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
出了什么问题,我该怎么解决呢?
Answer 1:
确保你有一个工作的python-apt软件包。 你可以尝试,并删除并重新安装该软件包与apt_pkg.so不设解决问题。
apt-get install python-apt
Answer 2:
这样做,当我遇到这个问题sudo apt-get update
。 我ENV是debian8,与python2.7 + 3.4(默认值)+ 3.5。
下面的代码将只重新创建一个apt_pkg....so
文件为Python 3.5
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-容易检查的最高Python版本,而不是当前正在使用的Python版本。
Answer 3:
这个解决它:
/usr/lib/python3/dist-packages# cp apt_pkg.cpython-34m-i386-linux-gnu.so apt_pkg.so
要么:
/usr/lib/python3/dist-packages# cp apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so
基本上,如果你得到一个No such file or directory
只是ls
尽量得到正确的名称。
Answer 4:
出于某种原因,我安装了失踪apt_pkg.so
在python3的dist-包目录。 ( apt_pkg.cpython-33m-x86_64-linux-gnu.so
在那里?!),但是,我不得不作出一个符号链接apt_pkg.so -> apt_pkg.cpython-33m-x86_64-linux-gnu.so
在/usr/lib/python3/dist-packages
我不知道我的升级是否被打破,或者为什么是这种情况。 它发生尝试升级后(precise-> raring->量子升级)
Answer 5:
当Python的新版本已经一起安装的旧如版本通常会出现此错误;
- Ubuntu的18.04.1附带了Python版本3.6.6
- 安装PPA:deadsnakes / python3.7.1或替代
运行使用apt_pkg模块的命令,并得到一个错误,如;
from CommandNotFound.db.db import SqliteDatabase File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module> import apt_pkg
当我们用apt安装非发行python3版本,它会设置一个共享的模块目录是python3的最通常它会在/ usr / lib中/ python3。
大多数时候,这将是好的,但在某些情况下不同版本的Python的依赖于不同的库或共享对象/库然后其他Python版本不会使其他的答案已经指出,我们需要将.SO链接到正确Python版本。 因此,如果我们已经安装了64位系统上python3.6那么apt_pkg .SO链接会
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
但问题就在于,当我们安装一个新的Python版本的链接都将更新为点到最新版本的Python,从而导致apt_pkg模块没有被发现的错误。 通过检查蟒蛇船舶的版本与你的发行版,你可以创建链接,如上图所示。 或者我们使用的方法所提供的命令Python版本的选择,让.SO等环节;
sudo ln -s apt_pkg.cpython-{36m,35m,34m}-x86_64-linux-gnu.so apt_pkg.so
因为Python将创建此链接到最新安装的Python版本,我们给出命令从3个Python版本,其中会选择给予最高版本选择的选项。
Answer 6:
如果你正在使用python 3.5,降级到3.4。 这是最保险的举动。
在/usr/lib/python3/dist-packages
你会看到*34m*
3.5不能使用的蟒蛇。 扎扎回答符号链接到它。
Answer 7:
不得已是sudo cp /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.cpython-36m-x86_64-linux-gnu.so
如果ln
命令是太多了,你还是不知何故神奇地不起作用。
cp
上面也可以mv
,如果你只专注于使用一个Python版本。
Answer 8:
除了使符号链接apt_pkg.so
,您可能希望apt_inst.so
在相同的方式apt_pkg.so
。
ln -s apt_inst.cpython-35m-x86_64-linux-gnu.so apt_inst.so
Answer 9:
请尝试通过设置语言环境变量来解决这个问题:
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
Answer 10:
万一它有助于另一个,我终于解决了这个问题,这显然是由Python版本冲突引起的,通过重定向链接python3,然后将其重定向到正确的Python版本:
sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4
您可能需要输入正确的Python版本,发现:
python3 -V
文章来源: python-dev installation error: ImportError: No module named apt_pkg