2017-09-13 45 views
0

我有一個名爲handshake.py的文件。哪裏有函數send_data(參數)。我想將該函數導入另一個名爲siptest.py的文件中。我遇到兩個問題。我正在使用Windows 7,64位的Microsoft Visual Studio。 1)我無法導入功能。我曾嘗試使用,Python:無法從another.py文件導入功能

from handshake import* 
handshkae.send_data(argument) 

這給我一個錯誤。

NameError: global name 'handshake' is not defined 

我已經使用

import handshake 
handshake.send_data(argument) 

這給了我一個屬性的錯誤嘗試另一種選擇。

AttributeError: 'module' object has no attribute 'send_data' 

如果我使用它的其他方式,如

from handshake import send_data 

2)MS Visual Studio中說。沒有測試發現,請檢查配置設置,但我仍然可以運行測試莫名其妙。它說由於導入錯誤,測試失敗。

ImportError: cannot import name send_data 

這兩個文件都在同一個目錄中。加上功能的一類「TCPhandshake」定義在handshake.py

回答

0

確保兩個文件都在同一個目錄,並嘗試:

from handshake import send_data 

如果這不起作用,嘗試重命名handshake.py文件。

+0

我已在最後一行中編輯了一些信息。請看看。可能會讓我的問題更加清晰,是的,這兩個文件都在同一個目錄中。我試圖通過更改名稱。我的問題中提到的兩個問題仍然存在。即ImportError和MS Visual studio停止識別測試 –

+0

沒有注意到您的功能是在班級內定義的。嘗試先導入類,然後實例化類:從文件import TheClass theclass = TheClass() – Kirin

0

我有同樣的問題,這發生在我試圖用Python從另一個目錄中運行程序/home/name/workspace/test.py

修復我累了。

import sys 
import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.append(BASE_DIR) 

這需要在開始時添加。 這適用於我。

0

是否handshake.pysiptest.py在同一目錄中?

如果不是您可以試試這個: 1)將__init__.py空文件添加到包含handshake.py的目錄中。 2)然後將該目錄的路徑添加到LD_LIBRARY_PATH和PYTHONPATH