LinuxにPython 3.6をインストールして落とし穴を避ける

LinuxにPython 3.6をインストールして落とし穴を避ける

Python 3のインストール

1. 依存環境をインストールする

Python3 はインストール プロセス中にさまざまな依存ライブラリを使用する可能性があるため、Python3 を正式にインストールする前に、まずこれらの依存ライブラリをインストールする必要があります。

yum -y インストール zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2. Python 3のソースコードをダウンロードする

Python3 のソースコードをダウンロードする方法は 2 つあります。1 つは公式 Web サイトからダウンロードする方法です。URL は次のとおりです。

https://www.python.org/downloads/source/

[写真]

別の方法としては、次のコマンドのように wget を介して直接ダウンロードする方法があります。

https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz を取得します。

3. インストールディレクトリを作成する

インストール ディレクトリは個人の好みに応じて作成できます。たとえば、ここでは /usr/local/python3 に作成されます。

mkdir -p /usr/local/python3

4. ソースパッケージを解凍する

手順 2 でダウンロードしたソース コード パッケージを解凍します。コマンドは次のとおりです。

tar -zxvf Python-3.6.1.tgz

5. ソースコードをコンパイルする

まず、解凍したソース パッケージのディレクトリに入り、それを設定します。

Python-3.6.1をインストールします
./configure --prefix=/usr/local/python3

次にコンパイルしてインストールします:

作る
インストールする

6. Python3のソフトリンクを作成する

python3 は、Python のバイナリファイルです。

7. /usr/local/python3/binをPATHに追加する

環境変数を変更するには、bash_profile を編集します。

vim ~/.bash_profile

Python3 の起動ディレクトリを PATH 変数に追加します。

# .bash_プロファイル
# エイリアスと関数を取得する
[ -f ~/.bashrc ]の場合;
  . ~/.bashrc
フィ
# ユーザー固有の環境と起動プログラム
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
エクスポートPATH

変更が完了したら、Esc キーを押して :wq と入力し、保存して終了します。

8. Python3とPip3が利用可能かどうかを確認する

次のコマンドを実行します (注意: V は大文字です)。結果が一致していれば、Python 3 は正常にインストールされています。

[alvin@VM_0_16_centos ~]$ python3 -V
Python 3.6.1
[alvin@VM_0_16_centos ~]$ pip3 -V
/usr/local/lib/python3.6/site-packages から pip 9.0.1 (python 3.6)

落とし穴

実際、インターネット上には Python 3 のインストールに関する投稿が多数あり、手順もほとんど同じです。しかし、実際にインストールしてみると、特に初心者の場合、多かれ少なかれいくつかのトラブルに遭遇するでしょう。よくある落とし穴をいくつか挙げます。

落とし穴 1: configure: エラー: $PATH に適切な C コンパイラが見つかりません

この問題は比較的単純で、gcc コンパイル環境が不足していることです。 gcc をインストールするだけです:

yum install -y gcc

もちろん、これに加えて、ソースコードのインストール方法も使用できます。

落とし穴 2: zipimport.ZipImportError: データを解凍できません

この問題は、zlib 関連のツールキットが不足していることが原因です。関連する依存関係をパッケージ化するだけです。

yum -y zlib をインストールします*

インストール後、ソースコードを再コンパイルして問題を解決してください。

落とし穴 3: pip3: SSL モジュールが利用できないため、HTTPS URL に接続できません

この問題は、./configure プロセス中に –with-ssl パラメータを追加しないと、デフォルトでインストールされたソフトウェアの SSL 機能が使用できないというものです。たまたま pip3 プロセスでは SSL モジュールが必要なのですが、指定されていないため機能が使用できません。解決策は次のとおりです。

Python-3.6.2をインストールします
./configure --with-ssl
作る
sudo インストール

落とし穴4: Multilib バージョンの問題

これは明らかです。同じライブラリに複数のバージョンが存在します。余分なバージョンを削除するだけです。

まず、既存のバージョンを照会します(opensslを例にとり、競合するものを確認します)

# rpm -qa | grep openssl
openssl-devel-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.i686

システムに openssl-1.0.0-27.el6_4.2.x86_64 と openssl-1.0.0-27.el6_4.2.i686 の 2 つのバージョンの openssl がインストールされていることがわかります。保持する必要があるのは x86 バージョンだけです。

rpm --erase --nodeps openssl-1.0.0-27.el6_4.2.i686

opensslを再度更新します:

# yum update "openssl*"

openssl を再度確認すると問題は解決しました。

# rpm -qa | grep openssl
openssl-devel-1.0.1e-16.el6_5.7.x86_64
オープンSSL-1.0.1e-16.el6_5.7.x86_64

要約する

上記は、Linux で Python 3.6 をインストールし、エディターによってもたらされる落とし穴を回避するためのガイドです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Linux に Python 3.8.1 をインストールするための詳細なチュートリアル
  • Linux で Python 3.8 をアップグレードしてインストールし、pip と yum を設定するチュートリアル
  • Linux サーバーに Python3 をインストールする 2 つの方法
  • Linux で Python3 と対応する pip 環境をインストールするための詳細なチュートリアル
  • Linux に Python をインストールするときにデフォルトの Python バージョンを変更する方法
  • Linux での Python のアップグレードと pip のインストールの詳細な説明
  • Linux での Python 3.7.0 インストール チュートリアル
  • LinuxにPython3をインストールし、システム独自のPython2と共存させる方法

<<:  Mysql通信プロトコルの詳細な説明

>>:  JS で列挙をシミュレートする方法

推薦する

nginx プロキシでの複数の 302 応答の解決策 (nginx Follow 302)

proxy_intercept_errors と recursive_error_pages を使...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

Vue+js 矢印をクリックして画像を切り替える

この記事の例では、矢印をクリックして画像を切り替えるVue + jsの具体的なコードを共有しています...

MySQL で最大接続数を設定するためのヒントのまとめ

方法1: コマンドラインの変更次の図に示すように、MySQL コンソールを開いて「set GLOBA...

MySQL レプリケーション問題の 3 つのパラメータの分析

目次01 sql_slave_skip_counter パラメータ02 スレーブスキップエラーパラメ...

CocosCreator 入門チュートリアル: ネットワーク通信

ネットワーク通信の概要オンライン ゲームを開発する場合、必然的にネットワーク通信に対処する必要があり...

DockerコンテナにRedisをデプロイする手順の紹介

目次1 つの Redis 設定ファイル2 Dockerコマンドの開始3 docker-compose...

CSS で画像アダプティブ コンテナを実装するいくつかの方法 (要約)

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

CSSカスケーディングメカニズムについての簡単な説明

CSS にカスケード メカニズムがあるのはなぜですか? CSS では、同じ要素の特定のプロパティに同...

MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

Angular 依存性注入の説明

目次概要1. 依存性注入2. Angularの依存性注入フレームワーク概要依存性注入: デザインパタ...

WeChatミニプログラム開発のためのコンポーネント設計仕様

WeChat ミニプログラム コンポーネント設計仕様コンポーネントベースの開発という考え方は、私の開...

JSはマップを使用してdouble配列を統合します

目次序文データのシミュレーション結合されたデータ合併のアイデアコードの表示と分析最初のステップステッ...

MySQL でのトリガーとカーソルの紹介と使用

トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...

Vue.jsは背景テーブルコンポーネントのカプセル化を管理します

目次問題分析なぜカプセル化なのかパッケージの内容は何ですか?テーブルコンポーネントをカプセル化するデ...