2011-07-04 63 views
0

我正在使用Python 2.7。我對Python語言頗爲陌生。我有兩個python模塊 - 「Trailcrest.py」和「Glyph.py」,都在同一個文件夾中,但不在Python27文件夾中。如何從當前非默認目錄導入模塊

我需要將「Trailcrest.py」導入到「Glyph.py」中,但我收到「沒有這樣的模塊存在」的消息。

此外,我用來導入模塊的任何方法都不需要依賴於固態路徑。該程序是跨平臺的,路徑可以根據用戶的喜好進行更改。但是,這兩個模塊將始終位於同一個文件夾中。

我該怎麼做?

+0

所以後來你是如何導入Glyph.py? –

+0

我正在shell中運行Glyph.py,而不是導入它。我需要導入「Trailcrest.py」INTO Glyph.py。 – CodeMouse92

+0

然後該目錄應該已經在'sys.path'中。等等...不要告訴我,你正在嘗試導入'Trailcrest.py'而不是'Trailcrest' ... –

回答

3

如果你有在同一文件夾Trailcrest.pyGlyph.py,導入到彼此是那樣簡單:

import Trailcrest 
import Glyph 

如果這不起作用,似乎有什麼不對您的Python安裝。您可能想要查看sys.path中的內容。

import sys 
print sys.path 
+0

啊哈!路徑是正確的,由Trailcrest保存爲TrailcrestCore。 Der>。< – CodeMouse92

2

爲了詳細說明費迪南德拜爾的answer了一下,sys.path是文件位置,默認模塊進口商檢查的列表。一些(儘管不是所有的python安裝)都會將當前目錄或__main__模塊的目錄添加到路徑中。爲了確保相對於給定模塊的路徑在該模塊中導入的是,做這樣的事情:

import os.path, sys 
sys.path.append(os.path.dirname(__file__)) 

但是這樣的事情不應該永遠把它做成「生產」的產品。相反,使用類似distutils的東西來安裝模塊的包到python site-packages目錄中。

1

這也可以使用環境變量PYTHONPATH來實現,它也影響Python的搜索路徑。這可以在shell腳本中完成,這樣就不需要修改Python文件。如果你想讓它從當前工作目錄中導入使用在bash的.符號:

export PYTHONPATH=. 
python python_prog.py 
相關問題