Vous devez utiliser différentes bibliothèques tierces et souhaitez réaliser les opérations suivantes:
(Je voudrais exécuter Ubuntu sur un Mac en utilisant VirtualBox et atteindre les objectifs ci-dessus tout en expérimentant afin de ne pas nuire au projet en cours.)
Dans un premier temps, nous allons exécuter (1) et (2).
--Ubuntu 20.04 (en utilisant VirtualBox 6.1 sur Mac)
$ sudo apt update && apt upgrade -y
$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
$ apt list --upgradable
$ sudo apt-get install build-essential checkinstall
$ sudo make altinstall
$ python3 --version
Python 3.8.2
Vous pouvez voir que le python3 inclus à ce stade est python3.8
(python 3.8.2). (Je l'ai recherché et je l'ai trouvé dans / usr / bin /
.)
Ensuite, trouvez le lien pour la version Python dont vous avez besoin dans la liste à https://www.python.org/ftp/python/ et utilisez wget pour le télécharger dans / opt /
.
#Premier Python-3.8.0
$ cd /opt
$ sudo wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
$ sudo tar xzf Python-3.8.0.tgz
$ cd Python-3.8.0
$ sudo ./configure --enable-optimizations
$ sudo make altinstall
#Puis Python-3.6.10
$ cd /opt
$ sudo wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
$ sudo tar xzf Python-3.6.10.tgz
$ cd Python-3.8.0
$ sudo ./configure --enable-optimizations
$ sudo make altinstall
#Vérifier le répertoire
$ cd /opt
$ ls -l
total 45884
drwxr-xr-x 18 501 501 4096 May 9 18:33 Python-3.6.10
-rw-r--r-- 1 root root 23019480 Dec 18 14:48 Python-3.6.10.tgz
drwxr-xr-x 18 kohei kohei 4096 May 9 17:48 Python-3.8.0
-rw-r--r-- 1 root root 23949883 Oct 14 2019 Python-3.8.0.tgz
drwxr-xr-x 8 root root 4096 May 8 18:04 VBoxGuestAdditions-6.1.6
$ sudo update-alternatives --install /usr/bin/python python /opt/Python-3.6.10/python 1
$ sudo update-alternatives --install /usr/bin/python python /opt/Python-3.8.0/python 2
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3
$ update-alternatives --list python
/opt/Python-3.6.10/python
/opt/Python-3.8.0/python
/usr/bin/python3.8
$ sudo update-alternatives --config python
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.8 3 auto mode
* 1 /opt/Python-3.6.10/python 1 manual mode
2 /opt/Python-3.8.0/python 2 manual mode
3 /usr/bin/python3.8 3 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
$ cd /usr/bin
$ ls -l pyt*
lrwxrwxrwx 1 root root 24 May 9 18:20 python -> /etc/alternatives/python
lrwxrwxrwx 1 root root 9 May 8 17:33 python3 -> python3.8
-rwxr-xr-x 1 root root 5457536 Apr 27 11:53 python3.8
lrwxrwxrwx 1 root root 33 Apr 27 11:53 python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx 1 root root 16 Mar 13 08:20 python3-config -> python3.8-config
$ ls -l /etc/alternatives/python
lrwxrwxrwx 1 root root 25 May 9 19:27 /etc/alternatives/python -> /opt/Python-3.6.10/python
$ which python
/usr/bin/python
$ python -V
Python 3.6.10
Vous pouvez voir que / etc / alternatives / python
est un lien symbolique vers le chemin (dans ce cas / opt / Python-3.6.10 / python
) correspondant au Python spécifié par l'utilisateur.
Résumé,
python
,/ usr / bin / python
est appelé./ usr / bin / python
est un lien symbolique vers / etc / alternatives / python
, / etc / alternatives / python
est appelé./ etc / alternatives / python
est lié à / opt / Python-3.6.10 / python
(dans les paramètres actuels de ʻupdate-alternatives`)./ opt / Python-3.6.10 / python
est appelé.Ensuite, mettez à jour pip
en suivant les étapes ci-dessous.
#Vérification
$ which python
/usr/bin/python
#Vérification
$ python -V
Python 3.6.10
$ apt install python3-pip
$ python -m pip install --upgrade pip
$ pip --version
pip 20.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
À partir de maintenant, j'ajouterai une bibliothèque pour chaque version de Python individuellement. La procédure est la suivante.
#Vérification
$ which python
/usr/bin/python
#Vérification
$ python -V
Python 3.6.10
$ sudo python -m pip install numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/03/27/e35e7c6e6a52fab9fcc64fc2b20c6b516eba930bb02b10ace3b38200d3ab/numpy-1.18.4-cp36-cp36m-manylinux1_x86_64.whl (20.2MB)
100% |████████████████████████████████| 20.2MB 2.3MB/s
Installing collected packages: numpy
Successfully installed numpy-1.18.4
$ sudo python -m pip install scipy
Collecting scipy
Downloading scipy-1.4.1-cp36-cp36m-manylinux1_x86_64.whl (26.1 MB)
|████████████████████████████████| 26.1 MB 5.8 MB/s
Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/site-packages (from scipy) (1.18.4)
Could not build wheels for numpy, since package 'wheel' is not installed.
Installing collected packages: scipy
Successfully installed scipy-1.4.1
#Vérifiez le résultat.
$ python -c 'import sys; print(sys.version); import numpy; print(numpy.__file__); import scipy; print(scipy.__file__)'
3.6.10 (default, May 9 2020, 18:32:23)
[GCC 9.3.0]
/usr/local/lib/python3.6/site-packages/numpy/__init__.py
/usr/local/lib/python3.6/site-packages/scipy/__init__.py
Pour référence, voyons ce qu'il y a dans / usr / local / lib / python3.6 / site-packages /
.
$ ls -l /usr/local/lib/python3.6/site-packages/
total 52
-rw-r--r-- 1 root root 126 May 9 18:34 easy_install.py
drwxr-xr-x 17 root root 4096 May 10 18:45 numpy
drwxr-xr-x 2 root root 4096 May 10 18:45 numpy-1.18.4.dist-info
drwxr-xr-x 2 root root 4096 May 10 18:45 numpy.libs
drwxr-xr-x 5 root root 4096 May 10 18:46 pip
drwxr-xr-x 2 root root 4096 May 10 18:46 pip-20.1.dist-info
drwxr-xr-x 5 root root 4096 May 9 18:34 pkg_resources
drwxr-xr-x 2 root root 4096 May 9 18:34 __pycache__
-rw-r--r-- 1 root root 119 May 9 18:33 README.txt
drwxr-xr-x 23 root root 4096 May 10 18:46 scipy
drwxr-xr-x 2 root root 4096 May 10 18:46 scipy-1.4.1.dist-info
drwxr-xr-x 6 root root 4096 May 9 18:34 setuptools
drwxr-xr-x 2 root root 4096 May 9 18:34 setuptools-40.6.2.dist-info
Pour plus d'informations, voyons que cette installation de numpy scipy n'affecte que Python 3.6.10 (comme prévu). Bien sûr, je n'ai pas touché à Python 3.8.0, donc cela ressemble à ceci:
$ /opt/Python-3.8.0/python -c 'import sys; print(sys.version); import numpy; print(numpy.__file__); import scipy; print(scipy.__file__)'
3.8.0 (default, May 9 2020, 17:47:23)
[GCC 9.3.0]
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
C'est un peu arrogant, mais on peut voir la même chose en changeant Python avec ʻupdate-alternatives`.
$ sudo update-alternatives --config python
[sudo] password for kohei:
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.8 3 auto mode
* 1 /opt/Python-3.6.10/python 1 manual mode
2 /opt/Python-3.8.0/python 2 manual mode
3 /usr/bin/python3.8 3 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /opt/Python-3.8.0/python to provide /usr/bin/python (python) in manual mode
kohei@kohei-VirtualBox:~$
kohei@kohei-VirtualBox:~$ which python
/usr/bin/python
kohei@kohei-VirtualBox:~$ python -V
Python 3.8.0
kohei@kohei-VirtualBox:~$
kohei@kohei-VirtualBox:~$ python -c 'import sys; print(sys.version); import numpy; print(numpy.__file__); import scipy; print(scipy.__file__)'
3.8.0 (default, May 9 2020, 17:47:23)
[GCC 9.3.0]
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
kohei@kohei-VirtualBox:~$
Bien sûr, n'oubliez pas de revenir à la version originale de Python à la fin.
kohei@kohei-VirtualBox:~$ sudo update-alternatives --config python
There are 3 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.8 3 auto mode
1 /opt/Python-3.6.10/python 1 manual mode
* 2 /opt/Python-3.8.0/python 2 manual mode
3 /usr/bin/python3.8 3 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /opt/Python-3.6.10/python to provide /usr/bin/python (python) in manual mode
kohei@kohei-VirtualBox:~$ which python
/usr/bin/python
kohei@kohei-VirtualBox:~$ python -V
Python 3.6.10
Recommended Posts