🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5109閲覧

python Windowsでマルチプロセスで動かしたい(multiprocessing)

Flan.

総合スコア123

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/12 04:46

編集2021/02/12 11:02

マルチプロセスを試しているのですが p.start()をしているのになぜか動きません
https://www.yoheim.net/blog.php?q=20170601
このサイトの通りにやったのですがうまくいきません エラーも警告もでないため理由が全く分かりません 

なぜf1(マルチプロセスで動かしたい関数)が使えないんでしょうか?わかる人教えてください

import time from multiprocessing import Process # 呼び出したい関数 def f1(name): print("Hello", name) print("Sleeping... 3s") time.sleep(3) print("Good morning", name) if __name__ == "__main__": # サブプロセスを作成します p = Process(target=f1, args=("Bob",)) # 開始します p.start() print("Process started.") # サブプロセス終了まで待ちます p.join() print("Process joined.")
結果 Process started. Process joined.

追記
os=win10
jupyterでやってます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/02/12 05:08

再現しません。質問者さんの環境を追記してください。
jbpb0

2021/02/12 05:12

> なぜaa(マルチプロセスで動かしたい関数)が使えないんでしょうか? aaって何?
jbpb0

2021/02/12 05:50 編集

質問のコードをそのまま実行したら time.sleep(3) NameError: name 'time' is not defined というエラーになるので、 import time を追加して実行したら、下記のように表示されたので、正常に実行されたようです Process started. Hello Bob Sleeping... 3s Good morning Bob Process joined. Windows Python 3.7.9 Mac Python 3.7.6 【追記】 下記のように実行しました python *.py (Macはpythonではなくpython3)
guest

回答1

0

ベストアンサー

これでしょう。

pythonのmultiprocessingが動きません

Windows, linux共に対話環境では動きませんが、
$ python mp.py
では動きました。

投稿2021/02/12 05:27

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/02/12 05:34

> Windows, linux共に対話環境では動きません なんと、そんな罠があるんですね ちなみに、Mac(OS 10.14.6)では、対話環境でも動きました Windows 10の対話環境では、ダメでした
jbpb0

2021/02/12 05:40

Windowsの対話環境で実行した場合は、 AttributeError: Can't get attribute 'f1' on <module '__main__' (built-in)> というエラーになりました 質問者さんは > エラーも警告もでないため理由が全く分かりません と書いてるので、また違う現象かも
jbpb0

2021/02/12 05:48

Windowsで、Jupyter Notebookで実行したら、質問者さんが質問に書いてる状態が再現しました Jupyter Notebookには、下記のみ表示されます Process started. Process joined. 対話環境と同じ下記エラーが、Jupyter Notebookと同時起動するコマンドプロンプトに出てました (前略) AttributeError: Can't get attribute 'f1' on <module '__main__' (built-in)> Jupyter Notebookはエラーを隠蔽してしまうので、こういうときは何が起きてるか分かりにくいですね
Flan.

2021/02/12 10:49

AttributeError: Can't get attribute 'f1' on <module '__main__' (built-in)> コマンドプロントのほうでは でました
Flan.

2021/02/12 11:14

pythonのmultiprocessingが動きません の通りにやってみましたが症状は変わりません
jbpb0

2021/02/12 14:29

コードを全部テキストファイルに書いて保存(エンコードはUTF-8)し、ファイル名の拡張子を .py にします ファイル名は何でもいいですが、たとえば mp.py とします コマンドプロンプトで、mp.py があるディレクトリに cd してから、 python mp.py と実行すれば、意図通りに動くと思います (pythonは、python3等の他のコマンド名かもしれません)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問