【发布时间】: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 VPSssh root@IP_Address -p Port_number
并更新所有已安装的软件包
我遵循了其余的步骤,在第 4 步(方法 1)和第 5 步(方法 2)之间,我选择了第 4 步(方法 1)。在所有步骤中,我什至没有收到任何错误。现在,总的来说,我的机器没有任何副作用,但从 Python 的角度来看,我遇到了以下问题:
-
Python 3.5.2 仍然存在于我的机器中:如果我输入
Python3,则打开 3.6.3,但如果我输入Python3.5,则打开 3.5.2。那么,即使升级后,我的机器上还有 Python 3.5.2 是否正常? -
我无法使用
pip3安装任何 Python 包/库,因为它仍然只指向 Python 3.5.2。 -
当我打开 Jupyter notebook 时,它仍然指向 Python 3.5.2(我没有使用
virtualenv)如何将它指向 Python 3.6.3?
附加信息:
- 这是一些命令的输出:
$ 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
- 当我尝试使用
Python3.5(指向 3.5.2)v/sPython3(指向 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'
>>>
-
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
- 键入
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