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 で列挙をシミュレートする方法

推薦する

CSS セレクタのグループ化の簡単な分析

セレクタのグループ化h2 要素と段落の両方を灰色にしたいとします。これを行う最も簡単な方法は、次のス...

MySQLで大きなテーブルを正常に削除する方法の詳細な説明

序文テーブルを削除するには、無意識に思い浮かぶコマンドは、DROP TABLE "テーブル...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

PostgreSQL マテリアライズドビュープロセス分析

この記事は主にPostgreSQLマテリアライズドビューのプロセス分析について紹介します。サンプルコ...

Docker を使用した Laravel アプリケーションのデプロイ例

この記事で使用されているPHPベースイメージはphp:7.3-apacheです。この記事の Lara...

HTML&CSS&JS 互換性ツリー (IE、Firefox、Chrome)

Web デザインにおけるツリーとは何ですか?簡単に言うと、リンクをクリックするとサブディレクトリが展...

SQL文の最適化の一般的な手順の詳細な説明

序文この記事では主に、SQL ステートメントの最適化の一般的な手順について説明します。これは、参考と...

複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装

現在、Nginx は、Web サービスを提供するために、Windows ベースの IIS と Lin...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...

Linux環境でglogログライブラリを使用する方法

Linuxライブラリを生成するLinux版はcentos7.3を使用し、コンパイルしてライブラリを生...

インデックスは MySQL クエリ条件で使用されますか?

雇用主から MySQL クエリ条件でインデックスが使用されるかどうかを尋ねられた場合、どのように答え...

Vmware での Ubuntu サーバーのインストール チュートリアル

この記事では、Ubuntuサーバーバージョンのインストールグラフィックチュートリアルを参考までに紹介...

Linux コマンドラインターミナルで画面を分割するための 2 つのツール

ターミナル分割画面ツールは2つあります: screen と tmux 1. 画面分割を使用する(上下...

MySQL の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

MySQL DISTINCTの基本実装原理の詳細な説明

序文DISTINCT は、GROUP BY 操作の実装と非常によく似ていますが、GROUP BY の...