7
如果我有文件x.py和y.py。而y.py是x.py的鏈接(符號或硬)。python - 導入一個文件是一個符號鏈接
如果我將兩個模塊都導入到我的腳本中。它會導入一次還是假定它們都是不同的文件並將其導入兩次。
它究竟做了什麼?
如果我有文件x.py和y.py。而y.py是x.py的鏈接(符號或硬)。python - 導入一個文件是一個符號鏈接
如果我將兩個模塊都導入到我的腳本中。它會導入一次還是假定它們都是不同的文件並將其導入兩次。
它究竟做了什麼?
Python會導入它兩次。
鏈接是文件系統的概念。對於Python解釋器,x.py
和y.py
是兩個不同的模塊。
$ 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無法找到其他直接位於符號鏈接處的模塊。其實很煩人。 – 2011-09-15 20:44:47