yumのエラー解決法 [Errno 14] problem making ssl connection
yumを実行したときに[Errno 14] problem making ssl connectionが発生した場合、文字通りssl接続に問題があります。
エラー内容
[root@test ~]# yum XXXX Loaded plugins: fastestmirror, refresh-packagekit, security Determining fastest mirrors * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp base | 3.7 kB 00:00 base/primary_db | 4.7 MB 00:00 epel | 4.3 kB 00:00 http://download.fedoraproject.org/pub/epel/6/x86_64/repodata/XXX: [Errno 14] problem making ssl connection Trying other mirror. http://download.fedoraproject.org/pub/epel/6/x86_64/repodata/XXX: [Errno 14] Peer cert cannot be verified or peer cert invalid Trying other mirror.
解決策
/etc/yum.repos.d/epel.repoに「sslverify=0」を追記すると解決することがあります。
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 sslverify=0 ← これを追記します。 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug ~以下略~
sslverifyはSSL証明書をチェックするかどうかを決めていて、デフォルトではチェックするになっています。しかし、古いダウンロードサーバーになると、SSL証明書の期限が切れていることがあり、エラーになってしまうのです。
pythonでファイル作成する際にFileNotFoundErrorが出る
ファイルをopen関数で作成したいがFileNotFoundエラーが出ます
python3.2以上を使ってるなら、os.makedirs()を引数exist_ok=Trueとして使うといいよ
open()でファイルを新規に作成するときに、存在しないディレクトリを含んだパスを指定するとFileNotFoundErrorが発生します。
エラーの例
open('new_dir/new_file.txt', 'w') # FileNotFoundError
pythonの構文、型、インデックスでよくあるエラーたち
よくあるエラーの内容メモ
種類 | メッセージ例 | 内容 |
---|---|---|
構文 | SyntaxError: unexpected EOF while parsing SyntaxError: invalid syntax |
(や:が足りないとき |
構文 | IndentationError: unindent does not match any outer indentation level | 同じ階層にあるはずのインデントが一致していないなど |
インポート | ModuleNotFoundError: No module named XXXX | 対象のモジュールがインストールされていないかもしくは、自作のモジュールの検索パスが違う |
インポート | ImportError: cannot import name ZZZ from XXX | モジュールに含まれていないオブジェクトをインポートしようとしたとき |
型や値 | AttributeError: module 'ZZZ' has no attribute 'XXX' | <オブジェクト>.<識別子>を呼び出しているとき、オブジェクトやメソッドの名前、オブジェクトの型を間違えている場合 |
型や値 | TypeError: can only concatenate str (not "int") to str | 異なる型のオブジェクトを+演算子で加算しようとした場合 |
型や値 | ValueError: could not convert string to float: 'float number' | 例えばfloat()は文字列を浮動小数点に変換するが、元の文字列が変換可能な値でない |
型や値 | ZeroDivisionError: division by zero | ゼロで割ろうとしている |
型や値 | NameError: name 'a' is not defined | 名前が見つからない場合、変数のスペルミスなど |
インデックスやキー | IndexError: list index out of range | 配列などで要素数を超えたインデックス値を指定してしまった場合 |
インデックスやキー | KeyError: 'x' | 辞書(dict型)の値をキーを指定して取得する際に、存在しないキーを指定してしまった場合 |
ファイル | FileNotFoundError: [Errno 2] No such file or directory: XXX | open()などでファイルを読み込む際などに指定したファイルが見つからない場合 |
ファイル | FileExistsError: [Errno 17] File exists: 'data' | すでにあるファイルを作成しようとした場合 |
pythonの配列に関するエラー一覧と対処法
pythonの配列に関してよくあるエラーメッセージです。
エラーメッセージ | 内容 |
---|---|
IndexError: list index out of range | インデックスの指定が範囲外 |
IndexError: pop from empty list | 空のリストからの取り出し |
ValueError: list.remove(x): x not in list | 存在しない要素を削除しようとした |
インデックスの指定が範囲外
エラーの例
a = [1, 2, 3] print(a[3])
対処の例
配列の長さのチェックを事前にする
a = [1, 2, 3, 4] if len(a) > 3: print(a[3])
空のリストからの取り出し
エラーの例
a = [] a.pop()
対処の例
配列に要素があるかチェック
a = [] if len(a) > 0: a.pop()