[解決済み] Pythonで`from six.moves import urllib`は何をするのですか?
質問
Pythonのコードに以下のような行がありました。
from six.moves import urllib
同時に
urllib.py
を任意の場所に配置することができます。というファイルがあることがわかりました。
six.py
をパッケージルートに置き、その中に
class Module_six_moves_urllib(types.ModuleType):
の中にあります。
これかな?これはどのように定義されているのですか?
アップデイト
Python初心者で、Pythonの構文についての質問で申し訳ありません。私は、次のことを学びました。
import
はPythonのファイル名で
py
という拡張子があります。では、この場合、このファイルはどこにあるのでしょうか?
解決方法は?
6 は、Python 2 と Python 3 の両方に互換性のあるコードを書くことを支援するパッケージです。
Python2と3でコードを書くときに開発者が直面する問題の1つは、機能は同じでも、標準ライブラリのいくつかのモジュールの名前が変わっていることです。
その
six.moves
モジュールは、Python2 と 3 の両方に共通の名前でこれらのモジュールを提供します (ほとんどは Python2 モジュールを Python 3 モジュールの名前で提供することです)。
つまり、あなたの行は
from six.moves import urllib
インポート
urllib
を混合してインポートします。
urllib
,
urllib2
と
urlparse
の構造を真似て、Python2の
urllib
. 以下もご参照ください。
こちら
.
EDIT を、質問の更新に対応させる。
TLDR; インポートモジュール
urllib
とファイルシステム上のファイルとの関係です。関連するファイルは、まさに
six.__file__
を指しています。
サードパーティモジュールは、以下のファイル/ディレクトリで定義されます。
にリストアップされています。
sys.path
. ほとんどの場合、モジュールがインポートされたファイル名は
__file__
属性があります。
six.__file__
. しかし
six.moves
なぜなら、公開されたモジュールは実際のPythonモジュールと1対1に対応するのではなく、それらのハックされたバージョンに対応するかもしれないからです。
関連
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] 億の相対的輸入
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】NameError: 名前 'self' が定義されていません。