【问题标题】:Problems after upgrading from Python 3.5 to Python 3.6 in Ubuntu 16.04 LTS在 Ubuntu 16.04 LTS 中从 Python 3.5 升级到 Python 3.6 后出现的问题
【发布时间】:2020-12-11 23:51:13
【问题描述】:

我按照Medium article 在我的 Ubuntu 16.04 LTS 中将 Python 3.5(具体来说是 Python 3.5.2)升级到了 3.6(具体来说是 Python 3.6.3)。

在那篇文章中,我跳过了第一步……

通过 SSH 登录并更新所有已安装的软件包
首先,以 root 用户身份通过​​ SSH 登录到您的 Ubuntu 16.04 VPS
ssh root@IP_Address -p Port_number
并更新所有已安装的软件包

我遵循了其余的步骤,在第 4 步(方法 1)和第 5 步(方法 2)之间,我选择了第 4 步(方法 1)。在所有步骤中,我什至没有收到任何错误。现在,总的来说,我的机器没有任何副作用,但从 Python 的角度来看,我遇到了以下问题:

  1. Python 3.5.2 仍然存在于我的机器中:如果我输入 Python3,则打开 3.6.3,但如果我输入 Python3.5,则打开 3.5.2。那么,即使升级后,我的机器上还有 Python 3.5.2 是否正常?

  2. 我无法使用 pip3 安装任何 Python 包/库,因为它仍然只指向 Python 3.5.2。

  3. 当我打开 Jupyter notebook 时,它仍然指向 Python 3.5.2(我没有使用 virtualenv)如何将它指向 Python 3.6.3?

附加信息:

  1. 这是一些命令的输出:
$ python -V
Python 2.7.12

$ python3 -V
Python 3.6.3

$ python3.5 -V
Python 3.5.2

$ which python
/usr/bin/python

$ which python3
/usr/local/bin/python3

$ which python3.5
/usr/bin/python3.5
  1. 当我尝试使用 Python3.5(指向 3.5.2)v/s Python3(指向 3.6.3)来 import 一些库时
$ python3.5
Python 3.5.2 (default, Jul 17 2020, 14:04:10) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> 

$ python3
Python 3.6.3 (default, Jul 15 2020, 20:42:43) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
>>>
  1. pip 版本:
$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip -V
pip 20.1.1 from /home/milan/.local/lib/python3.5/site-packages/pip (python 3.5)

$ pip3 -V
pip 20.1.1 from /home/milan/.local/lib/python3.5/site-packages/pip (python 3.5)

       因此,运行 pip3 install numpy 会为 Python 3.5.2 而非 Python 3.6.3 安装 numpy

  1. 键入Python3 打开Python 3.6.3,所以我什至尝试了$ python3 -m pip install numpy 命令来安装包,例如numpy 用于我的 Python 3.6.3,但出现以下错误:
Collecting numpy
  Downloading https://files.pythonhosted.org/packages/22/e7/4b2bdddb99f5f631d8c1de259897c2b7d65dcfcc1e0a6fd17a7f62923500/numpy-1.19.1-cp36-cp36m-manylinux1_x86_64.whl (13.4MB)
    100% |████████████████████████████████| 13.4MB 124kB/s 
Installing collected packages: numpy
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.6/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python3.6/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python3.6/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python3.6/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python3.6/site-packages/pip/wheel.py", line 316, in clobber
    ensure_dir(destdir)
  File "/usr/local/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/usr/local/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/numpy'
You are using pip version 9.0.1, however version 20.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

那么,现在,如何在我的 Ubuntu 16.04 LTS 中安装 Python 3.6.3 的包/库?有没有可能?

如何在不安装 virtualenv 的情况下将我的 Jupyter Notebook 指向 Python 3.6.3?目前,这是我的 Jupyter Notebook 的输出,非常令人困惑:

1.  from platform import python_version
2.  print(python_version())

3.5.2

1.  !python3 -V

Python 3.6.3

另外,在看到上述不同命令的输出之后,我的系统现在是不是搞砸了(我的意思是从系统的角度来看)?我必须重新安装我的 Ubuntu 16.04 吗?

【问题讨论】:

  • 尝试从 3.6 更新点子,也许会有所帮助:python3 -m pip install -U pip

标签: python python-3.x ubuntu installation pip


【解决方案1】:
  1. 更新二进制文件后,您应该运行以使用最新版本的二进制文件(python3.6 而不是 python3.5!)刷新缓存
sudo ldconfig
  1. 之后,运行
python3 -m pip install --upgrade pip

确保您的新 python 二进制文件的 pip 版本正确。

不,您的系统没有搞砸,您不必重新安装 Ubuntu。

问候

【讨论】:

    猜你喜欢
    • 2017-10-19
    • 2019-01-02
    • 1970-01-01
    • 2016-08-16
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多