この記事には以下が含まれます。これ問題は、私のシステムにPython3をインストールする方法を説明するように求められたことです。開発目的でシステムにPython3をインストールしようとしています。途中で問題が発生し、システムがデフォルトのPythonインストールまたはPython 3.4インストールを認識しなくなりました。また、yumなどのアプリケーションが破損しています。
sudo apt-get install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev
sudo yum install scl-utils
sudo wget https://www.softwarecollections.org/en/scls/rhscl/python33/epel-7-x86_64/download/rhscl-python33-epel-7-x86_64.noarch.rpm
sudo yum install rhscl-python33-*.noarch.rpm
また、.bashrcファイルに追加して後で削除した行は次のようになります。
alias python='/opt/rh/python33/root/usr/bin/python3.3'
振り返ってみると「python3.4」でなければならなかったと思いますが、どちらも単にこの行をコメントアウトすると、その効果が無効になると誤って考えたかもしれません。
編集:また、メモリが役に立つ場合、apt-getは間違った方法でインストールしようとしたので関係がないので、ここに含めないでください。
追加されたコマンドの出力を編集します。
戻るには「python」と入力してください。
-bash: python: command not found
which python
以下を提供します。
/usr/bin/which: no python in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin)
/usr/bin
しかし、両方/usr/sbin
。
alternatives --list | grep -i python
生産する:
python auto /usr/bin/python3.4
-v python
何も返しません。
type -a python
以下を提供します。
-bash: type: python: not found
declare -p PATH
出力
declare -x PATH="/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin"
私は次のようなものがあるようです/usr/bin/python
:
$ ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Jun 25 15:39 /usr/bin/python -> /etc/alternatives/python
しかし:
$ ls -l $(readlink -f /usr/bin/python)
以下を提供します。
ls: cannot access /usr/bin/python3.4: No such file or directory
これが関係しているかどうかはわかりませんが、/etc/alternatives/python
ターミナルではピンクに見えます。
ls -l /usr/local/bin/` prints `-rwxr-xr-x 1 root root 101 Sep 4 2014 2to3-3.4
-rwxr-xr-x 1 root root 241 Sep 4 2014 easy_install-3.4
-rwxr-xr-x 1 root root 99 Sep 4 2014 idle3.4
-rwxr-xr-x 1 root root 213 Sep 4 2014 pip3.4
-rwxr-xr-x 1 root root 84 Sep 4 2014 pydoc3.4
-rwxr-xr-x 2 root root 17544 Sep 4 2014 python3.4
-rwxr-xr-x 2 root root 17544 Sep 4 2014 python3.4m
-rwxr-xr-x 1 root root 3066 Sep 4 2014 python3.4m-config
-rwxr-xr-x 1 root root 236 Sep 4 2014 pyvenv-3.4
返品、
/opt/rh/python33/root/usr/bin/python3.3
返品:
/opt/rh/python33/root/usr/bin/python3.3: error while loading shared libraries: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory
答え1
システムで使用されているPython 2.7(CentOS7の/ usr / bin / python)は、プログラミング/スクリプトなどの代替目的で使用されるPython 3.5から切り離されていないため、システムは一貫していません。 CentOS 7は/usr/bin/pythonのpython2.7に依存し、最も重要なユースケースはYumパッケージ管理です。
きれいなCentOS 7システムでは、以下からPython 3.5をインストールできます。ソフトウェアコレクションそして:
sudo yum install -y centos-release-scl
sudo yum install -y rh-python35
これを有効にするには、シェルからその環境をインポートする必要があります。
. /opt/rh/rh-python35/enable
python3
次に、移植可能な方法でスクリプトを実行するために使用します。 (注:/opt/rh/rh-python35/root/bin/python
不幸なシンボルリンクです。)
実行設定を有効にすると、python3.5が共有ライブラリを見つけるために必要なLD_LIBRARY_PATHなどの環境変数も生成されます。
システムの混乱をなくすために、まず/usr/binから/etc/alternativesを指すPythonシンボリックリンクを削除しました。
/usr/bin/python2.7がELF LSB実行可能ファイルであることを確認してください。必要なシンボリックリンクを再作成します。ln -s /usr/bin/python2.7 /usr/bin/python2 ln -s /usr/bin/python2 /usr/bin/python
これがうまくいったら、Yumを再利用できます。