小编opt*_*opt的帖子

当要并行执行的功能位于其他文件中时,并行代码不起作用

我有一个想要并行运行的简单函数。如果直接在主函数中指定了该函数,则一切正常。但是,如果从单独的Python文件(该文件创建为包含一系列帮助函数)中调用了完全相同的函数,则代码将失败,并显示以下错误:

任务无法反序列化。请确保函数的参数都是可挑剔的。

我试图运行此代码:

from joblib import Parallel, delayed
import multiprocessing
import otherFile as of

inputs = range(10) 
def processInput(i):
    return i * i

num_cores = multiprocessing.cpu_count()

results1 = Parallel(n_jobs=num_cores)(delayed(processInput)(i) for i in inputs) # this works
results2 = Parallel(n_jobs=num_cores)(delayed(of.processInput)(i) for i in inputs) # this fails
Run Code Online (Sandbox Code Playgroud)

当我从文件的调用函数processInput()时,我只是在该.py文件中复制了相同的函数。

def processInput(i):
    return i * i
Run Code Online (Sandbox Code Playgroud)

如果需要调用的函数位于单独的.py文件中,如何使并行化工作?

这是完整的错误:

results = Parallel(n_jobs=num_cores)(delayed(of.processInput)(i) for i in inputs)
Traceback (most recent call last):

  File "<ipython-input-387-d8dd1dc361a6>", line 1, in <module>
    results = Parallel(n_jobs=num_cores)(delayed(of.processInput)(i) for i in inputs) …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multiprocessing

15
推荐指数
1
解决办法
436
查看次数

使用字典中的PNG文件在PySimpleGUI(Python)的“图像”小部件中显示

我有使用PySimpleGUI的Python GUI,它需要显示多个图形,我打算通过一组按钮进行导航。我知道我可以将所有图以PNG格式保存在给定的文件夹中,只需将它们加载到Image对象中,然后在单击按钮时使用元素的Update方法加载新图像。

如下所示的效果很好:

[sg.Image(filename=os.getcwd() + pngFileName, key='key1', size=(5, 6))]
Run Code Online (Sandbox Code Playgroud)

我需要传递要从当前目录中读取并显示在“图像”小部件中的图的文件名。

但这意味着我会将所有文件保存在一个文件夹中,而我更希望将所有PNG放在字典中,并在需要将给定文件名传递给sg.Image()时引用该字典。

我看到的好处是,这样一来,我不必占用硬盘驱动器上的空间来存储PNG,而且不必写然后从磁盘上读取,我想直接从磁盘上获取PNG会更快。运行时内存中的字典。

我无法实现此目标,因为代码似乎期望文件名具有特定路径,而不是传递包含PNG的字典的特定值。

我该如何实现?

python user-interface pysimplegui

6
推荐指数
1
解决办法
160
查看次数

删除Visual Studio中未使用的C#代码

当我在Windows窗体上工作时,我意外地点击了按钮,现在我有一些与此点击事件相关的代码.我不需要它们,我想从代码中删除这些部分,但是,如果我这样做,Visual Studio会在编译时抱怨导致它搜索丢失的代码.如何摆脱代码中未使用的点击事件?

c# mouseclick-event visual-studio winforms

5
推荐指数
1
解决办法
6694
查看次数

从字典中提取信息

我有一个字典,其中键是产品代码,每个键下面的值是产品的一些细节(例如重量,颜色,价格等).现在让我们说代码循环遍历我拥有的产品代码列表.我想检查代码(在下面的代码中称为myKey)是否在我的字典中,在这种情况下我还想提取一些属性(假设我的情况下只是颜色和价格).我正在尝试以下但没有成功:

var myColour = myDictionary
    .Where(x => myDictionary.Keys.Contains(myKey))
    .Select(x => x.Value.Colour);

var myPrice = myDictionary
    .Where(x => myDictionary.Keys.Contains(myKey))
    .Select(x => x.Value.Price);
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,但我只是没有看到结果存储在变量myColor和myPrice中.

我的问题的正确语法是什么?

c# linq dictionary

2
推荐指数
2
解决办法
106
查看次数