2013-02-26 129 views
0

我有一個練習Python中的課程,我必須完成。我已經將我的方法/ defs保存在一個文件中,只需要弄清楚如何運行它。我希望你能向我解釋如何導入文件(我知道語法「導入文件名」)。當我這樣做時,我得到一個錯誤。如何將導入的文件路徑更改爲我的桌面上的文件?我使用的是Mac和怠速運轉2.7.3Python導入文件mac

+0

您只能使用'__init __。py'文件導入與您的應用程序位於同一文件夾中的文件,或在子文件夾中導入文件,或者已經爲您的Python解釋器導入文件。 – solusipse 2013-02-26 00:47:48

回答

1

如果文件在同一目錄中的文件,你可以只使用

import <filename> #(without the <>) 

不過,如果你指的是該文件放置在單獨的目錄use imp

import imp 

module = imp.load_source('module.name', '/path/to/file.py') 
module.SomeClass() 
+0

我得到這個錯誤:警告(來自警告模塊): 文件「/ Users/Brandon/Documents/stuff/School/2012-2013/MITX/ProblemSet3/radiationExposure。py「,第24行 導入數學 RuntimeWarning:處理絕對導入時未找到父模塊」模塊「 – BDGapps 2013-02-26 01:15:13

+0

您是否有字面上名爲'module'的內容?因爲它看起來像是在尋找某個名稱。 – askewchan 2013-02-26 01:25:32

+0

askewchan是對的。您需要用代表您正在加載的模塊名稱的字符串替換「模塊」字符串。 – 2013-02-26 01:46:27

0

在Mac OS X上,有兩種啓動IDLE的基本方法。一種是通過雙擊Finder中Applications文件夾中的IDLE圖標。 (我會打電話給那個IDLE.app)第二個是從終端會話殼推出IDLE的東西,如:

idle2.7 

我會打電話給那個bin/idle,因爲它是指在系統的bin目錄之一到文件。

當啓動bin/idle時,IDLE將繼承shell的當前工作目錄,並將該目錄添加到Python搜索導入目錄列表的前端。您可以檢查目錄的該名單在IDLE shell窗口:

import sys 
sys.path 

當您啓動IDLE.app,但是,它不與任何相關的外殼,所以沒有機會告訴IDLE其工作目錄使用。在這種情況下,IDLE.app使用您的Documents文件夾/目錄作爲其工作目錄:在shell符號中,~/Documents,也拼寫爲/Users/your_login_name/Documents

您可以手動在你的Python程序,添加其它目錄進口操縱sys.path

import sys 
sys.path.insert(0, '/path/to/directory') 

另一種方式來處理sys.path是使用PYTHONPATH環境變量。但是,再次使用IDLE.app的時候,有沒有(簡單)的方式來傳遞環境變量給它,不像bin/idle

所以,如果你想使用IDLE.app,最簡單的方法是把你的Documents目錄中的所有的文件和包想要能夠導入的目錄。否則,使用終端會話,設置所需的工作目錄和/或變量PYTHONPATH並啓動bin/idle。因此,像:

cd ~/MyProject 
export PYTHONPATH=~/"AnotherPackageDirectory" 
idle2.7 

另一種方法是在Python中的搜索和使用的Distutils或easy_installpip默認位置安裝的模塊。但是當你有一個完成的項目時,這是需要了解的。