python3 --version은 환경을 망친 후 Python 2.7을 반환합니다.

python3 --version은 환경을 망친 후 Python 2.7을 반환합니다.

새로운 Python 가상 환경을 생성하려고 시도한 다음 실행했습니다 sudo virtualenv xxx. 다른 유사한 설명도 시도해 볼 수 있습니다. 그 후, 내 Python3은 엉망이 되었습니다. 관련 댓글의 출력을 볼 수 있습니다.

$ python --version
Python 2.7.12
$ python3 --version
Python 2.7.12
$ python3.5 --version
Python 2.7.12
$ which python3
/usr/bin/python3
$ which python3.5
/usr/bin/python3.5
$ ls -lh /usr/bin/python*
lrwxrwxrwx 1 root root    9 Nov 24  2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root   16 Nov 24  2017 /usr/bin/python-config -> python2.7-config
lrwxrwxrwx 1 root root    9 Nov 24  2017 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root   16 Nov 24  2017 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x 1 root root  319 Feb 24  2016 /usr/bin/python2-jsonschema
-rwxr-xr-x 1 root root  151 Nov 23  2015 /usr/bin/python2-pbr
-rwxr-xr-x 1 root root 3.4M Dec  4  2017 /usr/bin/python2.7
lrwxrwxrwx 1 root root   33 Dec  4  2017 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx 1 root root    9 May 26  2017 /usr/bin/python3 -> python3.5
lrwxrwxrwx 1 root root   16 Mar 23  2016 /usr/bin/python3-config -> python3.5-config
-rwxr-xr-x 2 root root 3.4M Jun 23 17:37 /usr/bin/python3.5
lrwxrwxrwx 1 root root   33 Nov 28  2017 /usr/bin/python3.5-config -> x86_64-linux-gnu-python3.5-config
-rwxr-xr-x 2 root root 3.4M Jun 23 17:37 /usr/bin/python3.5m
lrwxrwxrwx 1 root root   34 Nov 28  2017 /usr/bin/python3.5m-config -> x86_64-linux-gnu-python3.5m-config
lrwxrwxrwx 1 root root   10 May 26  2017 /usr/bin/python3m -> python3.5m
lrwxrwxrwx 1 root root   17 Mar 23  2016 /usr/bin/python3m-config -> python3.5m-config

그리고 python3이 손상되었으므로 python3을 사용하는 lsb_release도 손상되었습니다.

$ lsb_release -a
  File "/usr/bin/lsb_release", line 64
    print("No LSB modules are available.", file=sys.stderr)
                                               ^
SyntaxError: invalid syntax

lsb_release가 손상되었기 때문에 apt를 사용하는 데 문제가 있습니다.

python3을 다시 설치해 보았으나 회사 네트워크에 있기 때문에 설치가 불가능했습니다.

$ sudo apt-get install --reinstall python3.5

The following additional packages will be installed:
  libpython3.5 libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib python3.5-dev python3.5-minimal
Suggested packages:
  python3.5-venv python3.5-doc binfmt-support
The following packages will be upgraded:
  libpython3.5 libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib python3.5 python3.5-dev python3.5-minimal
7 upgraded, 0 newly installed, 0 to remove and 307 not upgraded.
Need to get 43.5 MB of archives.
After this operation, 5120 B disk space will be freed.
Do you want to continue? [Y/n] y

...<just trimming for easy reading>

E: Failed fo fetch <some network internal address> 403 Forbidden

E: Failed fo fetch <some network internal address> 403 Forbidden

E: Failed fo fetch <some network internal address> 403 Forbidden

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

이 내부 네트워크를 우회하기 위해 ppa:deadsnakes/ppa를 추가하려고 시도했는데 다음과 같은 결과를 얻었습니다.

$ sudo add-apt-repository ppa:deadsnakes/ppa
  File "/usr/bin/lsb_release", line 64
    print("No LSB modules are available.", file=sys.stderr)
                                               ^
SyntaxError: invalid syntax
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 22, in <module>
    sys.stdout.detach(), encoding="UTF-8", line_buffering=True)
AttributeError: 'file' object has no attribute 'detach'

따라서 python3과 python2의 바이너리는 동일한 것으로 보이며 네트워크 제한과 우분투의 계란 문제로 인해 apt에서 python3을 설치할 수 없었습니다. Python을 설치하려면 Python이 필요합니다.

정말 도움이 필요합니다. 불행히도 우분투를 처음부터 다시 설치하는 것은 전혀 옵션이 아닙니다.

도움을 주시면 감사하겠습니다. 감사합니다!

가능한 관련 기사:

python3은 python2.7.6을 가리킵니다.

https://www.linuxquestions.org/questions/ubuntu-63/python3-v-returns-python-2-7-12-can%27t-get-python3-to-work-4175650241/

https://askubuntu.com/questions/853377/error-with-lsb-release-a-in-ubuntu-16-04-xenial

https://forums.linuxmint.com/viewtopic.php?t=245836

ps: 운영 체제는 Ubuntu 16.04이지만 이 문제는 운영 체제와 관련이 없으며 다른 버전에서도 재현될 수 있습니다.

관련 정보