简体   繁体   English

在 Ubuntu 16.04 (AWS EC2) 上损坏的 Python 依赖

[英]Broken python dependencies on an Ubuntu 16.04 (AWS EC2)

I attempted to remove all installed python on my Ubuntu 16.04 .As it stands, I now understand I should not have done that.我试图删除我的 Ubuntu 16.04 上所有已安装的 python。就目前而言,我现在明白我不应该这样做。 However, just trying to reinstall python doesn't work.但是,仅仅尝试重新安装 python 是行不通的。

When I try当我尝试

$ sudo apt install -f --reinstall python3
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  python3-doc python3-tk python3-venv
The following NEW packages will be installed:
  python3
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
4 not fully installed or removed.
Need to get 0 B/8,710 B of archives.
After this operation, 68.6 kB of additional disk space will be used.
Setting up python3.5-minimal (3.5.2-2ubuntu0~16.04.5) ...
# Empty sitecustomize.py to avoid a dangling symlink
Could not find platform independent libraries <prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x00007fc6b52dd700 (most recent call first):
Aborted
dpkg: error processing package python3.5-minimal (--configure):
 subprocess installed post-installation script returned error exit status 134
dpkg: dependency problems prevent configuration of python3-minimal:
 python3-minimal depends on python3.5-minimal (>= 3.5.1-2~); however:
  Package python3.5-minimal is not configured yet.

dpkg: error processing package python3-minimal (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python3.5-minimal
 python3-minimal
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ python3
Could not find platform independent libraries <prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

Current thread 0x00007f87215c4700 (most recent call first):
Aborted

I tried installing some of the dependencies, I noticed were missing to no avail我尝试安装一些依赖项,但我注意到缺少但无济于事

$ sudo apt-get -f install python3.5-minimal
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3.5-minimal is already the newest version (3.5.2-2ubuntu0~16.04.5).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 dh-python : Depends: python3:any (>= 3.3.2-2~)
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Have tried different things but at this point I am lost as to how to go about this problem尝试过不同的事情,但此时我不知道如何解决这个问题

$ sudo apt-get -f install dh-python
Reading package lists... Done
Building dependency tree       
Reading state information... Done
dh-python is already the newest version (2.20151103ubuntu1.1).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 dh-python : Depends: python3:any (>= 3.3.2-2~)
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

I had a similar issue with python3 after ubuntu upgrading from 16 to 18. But you can try to use my solve on 16. Just use apt-get against apt在 ubuntu 从 16 升级到 18 之后,我在 python3 上遇到了类似的问题。但是你可以尝试在 16 上使用我的解决方案。只需对apt使用apt-get

NOTE: I need python2.7 installed in my system.注意:我需要在我的系统中安装 python2.7。

I followed those steps:我按照以下步骤操作:

  1. Uninstall all python3 packages:卸载所有 python3 包:

    sudo apt remove python3 && sudo apt autoremove

  2. But this doesn`t help me.但这对我没有帮助。 So will try to define which packages still exists in the system:所以将尝试定义系统中仍然存在哪些包:

    apt list --installed | grep python*

     //possible output: WARNING: apt does not have a stable CLI interface. Use with caution in scripts. libpython-stdlib/bionic,now 2.7.15~rc1-1 amd64 [installed,automatic] libpython2.7-minimal/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic] libpython2.7-stdlib/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic] libpython3-stdlib/bionic-updates,now 3.6.7-1~18.04 amd64 [installed] libpython3.5/now 3.5.2-2ubuntu0~16.04.12 amd64 [installed,local] libpython3.5-minimal/now 3.5.2-2ubuntu0~16.04.12 amd64 [installed,local] libpython3.5-stdlib/now 3.5.2-2ubuntu0~16.04.12 amd64 [installed,local] libpython3.6/bionic-updates,bionic-security,now 3.6.9-1~18.04ubuntu1.3 amd64 [installed,automatic] libpython3.6-minimal/bionic-updates,bionic-security,now 3.6.9-1~18.04ubuntu1.3 amd64 [installed,automatic] libpython3.6-stdlib/bionic-updates,bionic-security,now 3.6.9-1~18.04ubuntu1.3 amd64 [installed,automatic] python/bionic,now 2.7.15~rc1-1 amd64 [installed] python-apt-common/bionic-updates,bionic-updates,bionic-security,bionic-security,now 1.6.5ubuntu0.5 all [installed] python-minimal/bionic,now 2.7.15~rc1-1 amd64 [installed,automatic] python2.7/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic] python2.7-minimal/bionic-updates,bionic-security,now 2.7.17-1~18.04ubuntu1.2 amd64 [installed,automatic]
  3. As we can see, some of python3 packages are in the system.可以看到,系统中有一些python3包。 Will remove them.将删除它们。

    sudo apt remove libpython3-stdlib libpython3.5 libpython3.5-minimal libpython3.5-stdlib libpython3.6 libpython3.6-minimal libpython3.6-stdlib

  4. Now, try to install python3现在,尝试安装python3

    sudo apt install python3

  5. All should be OK一切都应该没问题

Maybe it's a better idea to install python from a deb package with sudo dpkg -i ?也许使用sudo dpkg -i从 deb 包安装 python 是一个更好的主意? You can download it from here , for example例如,您可以从这里下载

You should try: sudo apt-get update您应该尝试: sudo apt-get update

Then try uninstalling python with below command然后尝试使用以下命令卸载 python

sudo apt purge python3.x-minimal

if it uninstall successfully then如果它卸载成功那么

sudo apt-get install python3.6

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM