ERO python2 compatible et l'utilisation python3


Version du système: ubuntu16.04

Mise à jour python3.5 à python3.7

télécharger

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz

décompression

tar zxvf Python-3.7.1rc2.tgz
cd Python-3.7.1rc2

Compile

./configure
sudo make
sudo make install

interprète Python3.7 aller première position, généralement
/usr/local/bin/python3.7

Supprimez la connexion souple d'origine

rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3

Ajouter python3 lien souple

ln -s /usr/local/bin/python3.7 /usr/bin/python3
#添加 pip3 的软链接
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3

Issue notes

Un problème: erreur ModuleNotFoundError: Aucun module nommé '_ctypes de
solution

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev

问题 二: zipimport.ZipImportError: ne peut pas Décompressez données; zlib non disponible

solutions sudo apt-get install zlib

Troisième question: la gestion des exceptions exigent des emplacements TLS / SSL qui apparaissent

 sudo apt-get install gcc libffi-devel zlib* openssl-devel

Ensuite, vous pouvez ré-éditer et l'installation python7

Créer un environnement virtuel qui peut fonctionner en même temps compatible python2 python3

A la suite dans Ubuntu 16.04 64 bits et un test cinétique par ERO en
fait, il suffit d' ajouter le tralala python3 dans des fichiers .py, le temps rosrun appellera automatiquement l'interpréteur approprié:

#!/usr/bin/env python3

Cependant, lors de l'installation ros-cinétique-desktop-complet, mais aussi ne pas python3 installation du package associé, vous devez l'installer manuellement.

Création d'environnement virtualenv

sudo pip install virtualenv
# 我在这使用的是Python3.6rc2,指向系统已安装的python3也可以。
virtualenv -p /usr/bin/python3 venv
source venv/bin/activate
python -V
# Python 3.6.0rc2

virtualenv -p /usr/bin/python3 venv
Cette commande crée un dossier venv, l'espace mis au travail ERO, lorsque la source de ce que nous pouvons utiliser
comme indiqué ci - dessous des
Insérer ici l'image Description
questions : la mise en œuvre de la commande ci - dessus est susceptible de rencontrer des
problèmes un: python ModuleNotFoundError: ' 'CommandNotFound
solutions dans la prochaine:

Vérifiez / usr / lib / fichier command-not-trouvé, il essaie de trouver le module
CommandNotFound, ce qui est livré avec python3.7 mais le fait avec
Ubuntu sous le répertoire / usr / lib / python3 / dist-packages. Ce que nous devons
faire est d' ajouter le répertoire chemin d'importation python:
vi .bashrc (ou .profile) Ajouter une ligne
export PYTHONPATH = $ PYTHONPATH: /usr/local/lib/python3.7/site-packages: / usr / lib / python3 / dist-paquets
Faites attention que vous devrez peut - être modifier les
/usr/local/lib/python3.7/site-packages à votre propre répertoire.
sortie
et Bashrc source (ou .profile)

Deuxième problème: Aucun module named'lsb_release "
détermination dans la prochaine:

python3.7 après les instructions d' installation
Aucun module named'lsb_release '
modify / usr / bin / lsb_release
#! / usr / bin / python3.5m -ES

REMARQUE

source ros_test/devel/setup.zsh
# 如没有使用virtualenv,下一语句则跳过
source rosenv/bin/activate
rosrun py3test pytest.py//-如果要兼容python2,此语句不要执行

Notez que, virtualenv même utilisé, les points de python à python3, mais pas aussi longtemps que le fichier python3 .py tralala add, rosrun appelle toujours le python2. Cela peut être facilement compatible paquet python2 de l'original.

Publié 34 articles originaux · louange gagné 2 · Vues 2332

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44088559/article/details/105116697
conseillé
Classement