[英]ModuleNotFoundError when using multiprocessing
多處理生成中丟失的模塊路徑(ModuleNotFoundError)
所謂的在導入模塊上面插入sys-path的解決方案對我來說是行不通的。
這是我的 main.py
import multiprocessing
from testing import customfunction
customfunction(1,2,3)
if __name__ == "__main__":
process = multiprocessing.Process(target=customfunction)
process.start()
process.join()
print("DONE")
main.py 可以正常工作到 process.start()
這意味着自定義功能已正確導入
這是我的testing.py
import random
def customfunction(size, test, hello):
random.seed(size)
print(random.random())
return random.random()
main.py 和 testing.py 都在同一個文件夾中。 帶有init .py 文件的單獨文件夾也無法正常工作。
我收到此錯誤:
from testing import customfunction
ModuleNotFoundError: No module named 'testing'
我無法理解為什么創建的進程不保留系統路徑以導入文件。 如果我將多處理創建放在 customfunction 中,它也不起作用,也會發生同樣的錯誤。
我在頂部分享的鏈接對我也不起作用。
感謝您抽出時間閱讀。 如果您認為這是另一個問題的重復,請鏈接並解釋,我是 Python 新手。
編輯:
我使用 Windows 10 作為我的操作系統
我已經使用 Anaconda Navigator、Python 3.7.7 安裝了 Spyder 4.1.4。 我使用可執行包安裝。
我也在 VS Code 上測試了這段代碼。
我通過提到的兩個 IDE 運行它(EG VS Code Powershell 控制台和 Spyder 的 Python 控制台通過單擊運行)
我目前普遍認為這是我的計算機特有的問題,我想知道它是否可以在其他 Windows 系統中復制,以及第一行中鏈接的“解決方案”是否有效。 這樣我就可以查明我的錯誤
如果您調用multiprocessing.Process(target=customfunction, args=(1,2,3))
這應該有效。 我想不出這在 Linux 上不起作用的原因。
您能否更新您的問題並提供以下信息?
main.py
(例如,從命令行、IDE 等)?這里提到的解決方案似乎解決了我的問題,我從沒想過 VS Code 或 Spyder 的控制台會出現多處理問題,但是在外部系統終端中運行代碼是可行的。
感謝 Melih Elibol 幫助我更清楚地思考問題,我是 Python 新手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.