0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pyenvを使ってpythonのバージョンを変えた際に発生したエラーの解決

Posted at

この記事について

pyenvでPythonのバージョンを切り替える方法

上記の記事に従って使っているpythonのバージョンを変えようとしたところ、以下のエラーが発生してpythonのバージョン変更に失敗した。
以下のコマンドを使用してpythonのバージョンを変更しようとしたところ

shell
$ brew install pyenv
$ pyenv install 3.11.5
$ pyenv global 3.11.5

以下のエラーが発生。

shell
Warning: pyenv 2.4.19 is already installed and up-to-date.
To reinstall 2.4.19, run:
  brew reinstall pyenv
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.5.tar.xz...
-> https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz
Installing Python-3.11.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/sophytoeat/.pyenv/versions/3.11.5/lib/python3.11/ssl.py", line 100, in <module>
    import _ssl             # if we can't import it, let the error propagate
    ^^^^^^^^^^^
ModuleNotFoundError: No module named '_ssl'
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (OS X 15.1.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/python-build.20241202200149.10143
Results logged to /var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/python-build.20241202200149.10143.log

Last 10 log lines:
		DYLD_LIBRARY_PATH=/var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/python-build.20241202200149.10143/Python-3.11.5 ./python.exe -E -m ensurepip \
			$ensurepip --root=/ ; \
	fi
Looking in links: /var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/tmp9fvly540
Processing /private/var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/tmp9fvly540/setuptools-65.5.0-py3-none-any.whl
Processing /private/var/folders/3w/rh7h79ds2nd0shgy5dj8_4_m0000gn/T/tmp9fvly540/pip-23.2.1-py3-none-any.whl
Installing collected packages: setuptools, pip
  WARNING: The scripts pip3 and pip3.11 are installed in '/Users/sophytoeat/.pyenv/versions/3.11.5/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-23.2.1 setuptools-65.5.0
pyenv: version `3.11.5' not installed

opensslはbrewで入れたはずなのだが・・・
エラーをchatGPTに入力してみた。

(以下chatGPTの出力)

エラーの意味

  1. readlineモジュールが見つからない
    • ModuleNotFoundError: No module named 'readline'
    • Pythonのインタラクティブシェルで使われるreadline拡張がコンパイルされていないことを示しています。
    • 原因は、GNU Readlineライブラリがシステムに存在しない、またはpyenvがそれを正しく検出できないことです。
  2. _sslモジュールが見つからない
    • ModuleNotFoundError: No module named '_ssl'
    • PythonのSSL/TLS機能を提供する_sslモジュールがコンパイルされていないことを示しています。
    • 原因は、OpenSSLライブラリがシステムに存在しない、またはpyenvがそれを正しく検出できないことです。

解決方法

1. 環境変数 PATH の確認と設定

pyenv をインストールする際に使われるパスが、システム環境変数 PATH に含まれていないため、以下のように設定を確認してください。

現在の PATH を確認

shell
$ echo $PATH

pyenv のパスを追加:
~/.zshrc または ~/.bashrc に以下を追加します:

shell
$ export PATH="$HOME/.pyenv/bin:$HOME/.pyenv/versions/3.11.5/bin:$PATH"
$ eval "$(pyenv init --path)"

変更を反映するためにターミナルを再読み込み:

shell
$ source ~/.zshrc

2. Python 3.11.5 を再インストール:

shell
$ pyenv uninstall 3.11.5
$ pyenv install 3.11.5

インストール後、pyenv global を使用してバージョンを設定:

shell
$ pyenv global 3.11.5

(以上chatGPTの出力)

上記のコマンドを入れたらpythonの別バージョンインストールに成功

shell
pyenv: version `3.11.5' not installed
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.5.tar.xz...
-> https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz
Installing Python-3.11.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.11.5 to /Users/sophytoeat/.pyenv/versions/3.11.5

バージョンを変更。

shell
$ pyenv global 3.11.5

pythonコマンドで確認

shell
Python 3.11.5 (main, Dec  2 2024, 20:06:18) [Clang 16.0.0 (clang-1600.0.26.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

pythonのバージョン変更に成功。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?