ROS python2 compatible y uso python3


Versión del sistema: ubuntu16.04

Actualización python3.5 a python3.7

descargar

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

descompresión

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

Compilar

./configure
sudo make
sudo make install

intérprete Python3.7 ir primera posición, por lo general
/usr/local/bin/python3.7

Eliminar la conexión original suave

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

Añadir enlace blando python3

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

notas de emisión

Uno de los problemas: Error ModuleNotFoundError: Sin módulo llamado '' _ctypes
solución

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: puede descomprimir datos no; zlib no disponible

soluciones sudo apt-get install zlib

Tercera pregunta: manejo de excepciones requiere ubicaciones TLS / SSL que aparecen

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

A continuación, puede volver a editar y python7 instalación

Crear un entorno virtual que se puede ejecutar al mismo tiempo python3 python2 compatibles

Siguiendo en Ubuntu 16.04 x64 y prueba cinética por ROS en
realidad, sólo tiene que añadir python3 tinglado en ficheros .py, el tiempo rosrun llamará automáticamente al intérprete apropiado:

#!/usr/bin/env python3

Sin embargo, al instalar ros-cinético-escritorio con todas, sino que también lo hizo la instalación del paquete relacionado no python3, es necesario instalarlo manualmente.

Creación de un entorno 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
Este comando crea una carpeta Venv, lo puso a ROS espacio de trabajo, cuando la fuente de lo que podemos utilizar
como se muestra a continuación
Aquí Insertar imagen Descripción
preguntas : la aplicación del comando anterior es probable que encuentre
problemas a: Pitón ModuleNotFoundError: ' CommandNotFound '
soluciones en la siguiente:

Compruebe el archivo / usr / lib no encontrado comando /, que está tratando de encontrar el módulo
CommandNotFound, que no se suministra con python3.7 pero lo hace con
Ubuntu en el directorio / usr / lib / python3 / dist-paquetes. Lo que tenemos que
hacer es añadir el directorio a la ruta de importación de Python:
vi .bashrc (o .profile) Añadir una línea de
PYTHONPATH exportación = $ PYTHONPATH: /usr/local/lib/python3.7/site-packages: / usr / lib / python3 / dist-paquetes
Tener en cuenta que puede que tenga que cambiar los
/usr/local/lib/python3.7/site-packages a su propio directorio.
salida
y .bashrc fuente (o .profile)

Segundo problema: Ningún módulo named'lsb_release '
determinación en la siguiente:

python3.7 después de las instrucciones de instalación
Ningún módulo named'lsb_release '
Modificar / usr / bin / lsb_release
#! / usr / bin / python3.5m -ES

NOTA

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

Tenga en cuenta que, virtualenv utiliza incluso en, puntos de pitón a python3, pero no tan largo como archivo python3 tinglado complemento .py, rosrun todavía llama la python2. Esto puede ser fácilmente compatibles paquete python2 del original.

Publicado 34 artículos originales · ganado elogios 2 · Vistas 2332

Supongo que te gusta

Origin blog.csdn.net/weixin_44088559/article/details/105116697
Recomendado
Clasificación