私はファイルx.pyとy.pyを持っています。 y.pyはx.pyのリンク(シンボリックまたはハード)です。python - シンボリックリンクであるファイルをインポートする
私のスクリプトに両方のモジュールをインポートする場合。それを一度インポートするか、両方が別のファイルであると想定して2回インポートしますか?
正確には何ですか?
私はファイルx.pyとy.pyを持っています。 y.pyはx.pyのリンク(シンボリックまたはハード)です。python - シンボリックリンクであるファイルをインポートする
私のスクリプトに両方のモジュールをインポートする場合。それを一度インポートするか、両方が別のファイルであると想定して2回インポートしますか?
正確には何ですか?
Pythonはそれを2回インポートします。
リンクはファイルシステムの概念です。 Pythonインタプリタでは、x.py
とy.py
は2つの異なるモジュールです。
$ echo print \"importing \" + __file__ > x.py $ ln -s x.py y.py $ python -c "import x; import y" importing x.py importing y.py $ python -c "import x; import y" importing x.pyc importing y.pyc $ ls -F *.py *.pyc x.py x.pyc [email protected] y.pyc
あなただけのスクリプト自体はのsys.pathの最初のエントリは、リンクのターゲットを含むディレクトリになります。その場合にはシンボリックリンクである場合には注意する必要があります。
ああ、はい、私はそれに遭遇しました。私は、開発中に私が編集している元のコピーへのシンボリックリンクである「配備」領域のスクリプトを指しています。 Pythonがシンボリックリンクが存在する場所に直接座っている他のモジュールを見つけることができなかった理由を理解するのに長い時間をかけました。むしろ迷惑です。 –