こんにちは。私はubuntuサーバー(Python 2.7.12)とWindowsサーバー(Python 2.7.13)を持っています。下のコードはウインクボックスでは完全に動作しますが、Windowsサーバでエラーが発生します。windows対ubuntu NameError:グローバル名は定義されていません
import multiprocessing
import time
check="h"
def run(check):
return test.validityCheck(check)
class t:
def validityCheck(self,check):
time.sleep(4)
print(check)
errorStatus=str("error")
return ("error state: "+errorStatus)
def valid(self,check):
print 'starting....'
pool = multiprocessing.Pool(1)
res = pool.apply_async(run, [check])
try:
print res.get(timeout=5)
except multiprocessing.TimeoutError:
error=1
print 'end'
def valid1(self, check):
self.valid(check)
if __name__=='__main__':
test=t()
test.valid1(check)
Traceback (most recent call last):
File "C:/scripts/m1.py", line 32, in test.valid1(check)
File "C:/scripts/m1.py", line 28, in valid1 self.valid(check)
File "C:/scripts/m1.py", line 22, in valid print res.get(timeout=5)
File "C:\Python27\lib\multiprocessing\pool.py", line 567, in get raise self._value
NameError: global name 'test' is not defined
完全なトレースバックを投稿できますか? –
追加されたトレースバック –
'run'関数を見てください。あなたはどこにでもオブジェクト "test"を定義していないので、エラーメッセージに "NameError:グローバル名 'test'が定義されていません" –