首先讓我告訴你,我是一個新用戶,我剛剛開始在大學學習Python,所以如果在其他主題回答這個問題,我很抱歉,但我搜索,我似乎無法找到它。Python - 在哪裏粘貼文件導入
我收到了我老師的文件work.pyc
,他說我必須使用命令from work import *
將它導入到我的Wing IDE中,問題是我不知道將文件導入到哪裏。它只是說ImportError: No module named work
。
謝謝
首先讓我告訴你,我是一個新用戶,我剛剛開始在大學學習Python,所以如果在其他主題回答這個問題,我很抱歉,但我搜索,我似乎無法找到它。Python - 在哪裏粘貼文件導入
我收到了我老師的文件work.pyc
,他說我必須使用命令from work import *
將它導入到我的Wing IDE中,問題是我不知道將文件導入到哪裏。它只是說ImportError: No module named work
。
謝謝
如果你在一個文件夾中project
稱爲main.py
腳本的工作,一個選擇是將其放置在project/work.pyc
這將使模塊因爲它與代碼位於相同的工作目錄中。
Python的解決import語句的方式是這樣的(簡體):您正在使用
Python解釋器(/usr/bin/python2.6
例如,可以有幾個您的系統上)具有它看起來的搜索路徑列表爲可導入的代碼。這份名單是在sys.path
你可以通過發射了你的解釋,並打印出來這樣看待它:
>>> import sys
>>> from pprint import pprint
>>> pprint(sys.path)
sys.path
通常包含標準庫中的路徑,模塊,附加安裝包(通常是在定點包)以及可能的其他第三方模塊。
當您執行類似import foo
的操作時,Python會首先查看腳本所在目錄中是否存在名爲foo.py
的模塊。如果沒有,它會搜索sys.path
並嘗試從那裏導入它。
正如我所說的,這個解釋有點簡化。細節在關於module search path的部分中解釋。
注1: 的*.pyc
你有遞給是compiled Python bytecode。這意味着它的內容是二進制的,它包含由Python虛擬機執行的指令,而不是通常處理的*.py
中的源代碼。
注2: 老師給你做的建議from work import *
是一個相當糟糕的建議。在交互式解釋器中進行測試可能沒有問題,但是您應該在實際代碼中使用而不是。相反,你應該這樣做from work import chop, hack
主要原因:
foo
來自哪裏,只需向上滾動並查看導入內容,即可看到導入的具體位置。如果該人使用import *
,則不能這樣做。如果你使用Python解釋器(就是那個讓你直接輸入Python代碼到它並執行),你必須這樣做:
sys.path.append('newpath')
from work import *
其中NEWPATH是你的文件系統上包含你的work.pyc文件的路徑
我有點擔心你的老師是1)給你一個'.pyc'文件和2)沒有給出足夠的說明如何導入它! –
什麼@JonClements說+「3)建議'進口*'」 –