2017-05-04 102 views
-1

我在Windows 7 Professional上使用Python 2.7。來自其他文件的Python調用函數

我想調用保存在另一個文件中的函數來運行'這個文件'的代碼。

功能稱爲dosomethinganotherfile.py

發現「anotherfile.py`是在相同的目錄中的電流的代碼。

我的電話很簡單:

import anotherfile 

print anotherfile.dosomething 

我得到一個錯誤:No module named anotherfile

的問題是相同的,因爲我在this post

我不明白的解決方案中。

Insight?

謝謝。

編輯:其他問題/答案討論重置CLASSPATH和設置PYTHONPATH。我探討了這一點,但不知道如何做到這一點。也許有關?

+1

'anotherfile.dosomething()'因爲它是一個函數 – depperm

+0

當我這樣做時,我得到'NameError:name'另一個文件'沒有定義' – Windstorm1981

回答

2

讓我們在同一個目錄中有兩個文件。文件被稱爲main.pyanother.py

先寫的方法在another.py

def do_something(): 
    return "This is the do something method" 

然後從main.py調用該方法。這裏是main.py

import another 
print another.do_something() 

運行main.py,你會得到這樣的輸出:

This is the do something method 

注意:正在使用Python 2.7在Windows 10

+0

我相信我有同樣的事情。不工作。 – Windstorm1981

+0

檢查兩個文件是否在同一目錄中,並確保沒有相同文件名的目錄 – arsho

+0

這兩個文件都在同一個目錄中。這是一臺新電腦,其他目錄中沒有同名的文件。 – Windstorm1981

4

指定執行上面的代碼然後文件然後導入像這樣:

from this_module.anotherfile import dosomething 

或者,如果你從「anotherfile.py」

from this_module.anotherfile import * 

想要的所有功能,然後你可以調用「DoSomething的」命令沒有「anotherfile」前綴。

+0

同樣的問題。出於某種原因,我在'這個文件'中的代碼沒有看到位於同一目錄中的'anotherfile.py'。 – Windstorm1981

+0

看到我編輯的答案(我忘記在導入中包含模塊)嘗試新建議 – drew

+0

具體是什麼'this_module'?我在'這個文件',並有代碼行。沒有功能(尚未) – Windstorm1981

0

我發現了這個問題。 Python正在尋找另一個目錄中的文件。我明確地將我的工作目錄設置爲thisfile.pyanotherfile.py所在的路徑,並且它可以工作。感謝您的所有快速回復。

相關問題