私は、アプリケーション(x64)でスクリプト環境として組み込まれているPython 3.1.4を使用しています。 これまでのところ、私は組み込みのpythonに多くの制限がありました。私はそれが正常であるのか、アプリケーションのプログラマーがいくつかの機能をブロックしているのかどうかはわかりません。組み込みPython:マルチプロセッシングが動作しない
たとえば次のコードは動作していない。
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
# --> error in forking.py: 'module' object has no attribute 'argv'
# print(sys.argv) gives the same error
sys.executable
リターンアプリケーションへのパス。
私はWELとしてこれを試してみた:
multiprocessing.forking.set_executable('C:\Python31\python.exe')
multiprocessing.set_executable('C:\Python31\python.exe')
成功せず。
回避策はありますか?アプリケーションの開発者がコード内で何かを変えるようにするために、私が利用することはほとんどありません。
EDIT
おかげで私はそれが次のように追加することで動作するようになった:
sys.argv = ['c:/pathToScript/scipt.py']
私もこの行を必要:
multiprocessing.set_executable('C:/Python31/python.exe')
それ以外の場合は、コードを実行する代わりに、アプリケーションの他のインスタンスが開きます。
私が残した唯一の問題は、アプリケーション自体を制御するメソッド(create_project()、add_report()など)を使用できないことです。私の主な目標は、最初のものが完了するのを待つ必要なく、複数のメソッドを呼び出すことでした。しかし、私はこれはちょうど不可能だと思う。デフォルトで
マルチプロセッシングの代わりにスレッドを使用するのではないですか? –
どちらのOSですか...... – NPE
@ Ionut Hulub:私は糸通しにも問題があります。だから私はマルチプロセッシングで試したのです @ NPE:Windows 7、64bit –