ROS互換python2と使用のpython3


システムバージョン:ubuntu16.04

python3.7への更新python3.5

ダウンロード

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

減圧

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

コンパイル

./configure
sudo make
sudo make install

Python3.7インタプリタは、一般的に、最初の位置に行く
/usr/local/bin/python3.7

オリジナルソフトの接続を削除します。

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

python3ソフトリンクを追加

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

問題のメモ

一つの問題:エラーModuleNotFoundError:「_ctypes」という名前のないモジュール
ソリューション

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:解凍データはできません。zlibの利用できません

ソリューション sudo apt-get install zlib

質問3:例外処理が表示されるTLS / SSLの場所を必要とします

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

そして、あなたがすることができ、再編集して、インストールpython7

同時に、互換性のあるpython2ののpython3で実行できる仮想環境を作成します。

Ubuntuの16.04に続くのはROSによるx64および運動テストでは
、実際、ただの.pyファイルでシェバングのpython3を追加し、自動的に適切なインタプリタを呼び出しますrosrun時間:

#!/usr/bin/env python3

ROS-運動 - デスクトップフルインストールするだけでなく、ではないのpython3関連パッケージのインストールをしたときしかし、それを手動でインストールする必要があります。

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
このコマンドは、仕事に彼にROSスペースを入れて、venvフォルダを作成するときに我々が使用できるかのソース
の下に示すように、
ここに画像を挿入説明
質問:上記のコマンドの実装が遭遇する可能性のある
問題:パイソンModuleNotFoundError ' CommandNotFound「
次へのソリューション:

/ usr / libに/コマンド・見つからないファイルをチェックし、モジュールを見つけることを試みている
とのpython3.7が、DOESに同梱されていないCommandNotFound、
ディレクトリは/ usr / libに/のpython3 / distの-のパッケージの下のUbuntuを。私たちがする必要が
行うことはPythonのimportパスにディレクトリを追加している:
VIの.bashrc(または.profile)行の追加
輸出PYTHONPATH = $ PYTHONPATH:/usr/local/lib/python3.7/site-packagesします。/ usr / lib /をpython3 / DIST-のパッケージが
あることにご注意あなたが変更する必要がある場合があり
、独自のディレクトリに/usr/local/lib/python3.7/site-packagesを。
出口
ソースの.bashrc(または.profile)

第二の問題:なしモジュールnamed'lsb_release「
次への決意:

インストールプロンプトの後python3.7
ないモジュールnamed'lsb_release「
修正は/ usr / binに/ lsb_releaseの
#!は/ usr / binに/ python3.5m -ES

注意

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

virtualenvのもで使用、という注意、Pythonのポイントのpython3のではなく、限りの.pyシェバングの追加のpython3ファイルとして、rosrunはまだpython2を呼び出します。これは、元の簡単互換性のあるパッケージPython2することができます。

公開された34元の記事 ウォンの賞賛2 ビュー2332

おすすめ

転載: blog.csdn.net/weixin_44088559/article/details/105116697