質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

6783閲覧

Python3のインストール時にCould not import runpy module が発生する

boyon

総合スコア40

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/21 05:26

Azure上のRHEL7.6 にPython 3.9.5 をソースからインストールしています。
7.6まではyumでのインストールはできないので(yum関連をいじればできるけど)
ソースをコンパイルすることにしました。

何台かすでに実施しましたが、以下のようなエラーで失敗するケースがあります。
後日試すとうまくいくケースもありました。
今6台目を実施中なんですが、うまくいきません。make で失敗します。

gcc -pthread -Xlinker -export-dynamic -o python Programs/python.o libpython3.9.a -lcrypt -lpthread -ldl -lutil -lm -lm ./python -E -S -m sysconfig --generate-posix-vars ;\ if test $? -ne 0 ; then \ echo "generate-posix-vars failed" ; \ rm -f ./pybuilddir.txt ; \ exit 1 ; \ fi Could not import runpy module Traceback (most recent call last): File "/usr/local/src/Python-3.9.5/Lib/runpy.py", line 15, in <module> import importlib.util File "/usr/local/src/Python-3.9.5/Lib/importlib/util.py", line 2, in <module> from . import abc File "/usr/local/src/Python-3.9.5/Lib/importlib/abc.py", line 17, in <module> from typing import Protocol, runtime_checkable File "/usr/local/src/Python-3.9.5/Lib/typing.py", line 21, in <module> import collections SystemError: <built-in function compile> returned NULL without setting an error generate-posix-vars failed make[1]: *** [pybuilddir.txt] Error 1 make[1]: Leaving directory `/usr/local/src/Python-3.9.5' make: *** [profile-opt] Error 2

【作業手順】
yum update で v7.6の最新状態にし、
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
./configure --enable-optimizations --prefix=/usr/local/python3
make
を、実行すると make で上記のエラーが発生します。

エラーが発生しない場合は、
make altinstall で、python3 をインストールしてシンボリックリンクでパスを通して使用しています。
使い込んでるわけではありませんが、今のところ問題なく使えています。

【調査してて見つけた情報】
Could not import runpy module で調べてると、ツイッターで同じような現象に合った方がいらっしゃるようで、曰く、~/.local が怪しかったので消したらうまくいったとのことでした。
うまくいったり、いかなかったりするのはローカル環境に問題がありそうな気がしてます。
しかし自分の環境にはこのようなディレクトリ?は見つかりませんでした。

上記事象を踏まえて解決のヒントはないでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

pythonのソースコードからのインストールはしたことがありませんが、

  • (「./python」を実行しているところを見ると)bootstrap環境(ビルドのための最小限のpythonの動作環境)でなにか処理しようとしてエラーになっているっぽい?
  • うまく行く環境と問題のある環境がある
  • 「`~/.local」を消したらうまくいくこともある

ところを見ると、本来bootstrap環境で作成されたpythonの環境を見なければならないのに、他でインストールされたpythonの環境を見に行ってしまい、問題が起きているんじゃないかなぁ、なんて推測するのですが、まぁあくまで推測の域なので話半分に聞いていただければと。


で、本題、というか提案です。

rpmパッケージを作ってみてはいかがですか。
どこかの環境でrpmパッケージを作ってしまえば、個々でビルドする必要もないですし。
(まぁ、仮想環境、それも最低限のRHEL7.6の環境で作ってしまった方がいいかと思います。上記のようなこともありますし)

rpmパッケージの作り方を学ばなければなりませんが、まぁ自力でソースをビルドするスキルぐらいあればそんなに難しい話でもないと思います。
バージョン管理もできますし、これから先RedHat系のディストリビューションとお付き合いするのであれば、知っておいて損のない知識だと思います。
いかがでしょう。

投稿2021/06/23 12:18

katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

boyon

2021/06/24 04:14

うまくいかなかった場合でも翌日or翌々日にやり直すと成功します。 日次のクリーンナップでどこかのワーク領域が掃除されてるんじゃないかと想像してます。(よくわかってない) 今9台完了で、あと15台ぐらいあります(笑) rpmを作るという発想がありませんでした! ちょっと調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問