小编pri*_*ist的帖子

PIL 和 python 静态类型

我有一个函数参数,它可以接受多种类型的图像:

def somefunc(img: Union[np.array, Image, Path, str]):
Run Code Online (Sandbox Code Playgroud)

Image在这种情况下,PIL会引发以下异常:

TypeError: Union[arg, ...]: each arg must be a type. Got <module 'PIL.Image' from ...
Run Code Online (Sandbox Code Playgroud)

在进一步检查图像对象后,这是有道理的:

print(type(Image.open('someimage.tiff')))
>>> <class 'PIL.TiffImagePlugin.TiffImageFile'>
Run Code Online (Sandbox Code Playgroud)

我将如何为 PIL 图像指定通用类型?它来自一个文件,它的格式应该是无关紧要的。

python typing python-imaging-library

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

Slurm 多处理 Python 作业

我有一个 4 节点 Slurm 集群,每个节点有 6 个核心。我想提交一个利用多重处理的测试 Python 脚本(它会生成打印正在运行的节点的主机名的进程),如下所示:

def print_something():
  print gethostname()

# number of processes allowed to run on the cluster at a given time
n_procs = int(environ['SLURM_JOB_CPUS_PER_NODE']) * int(environ['SLURM_JOB_NUM_NODES'])
# tell Python how many processes can run at a time
pool = Pool(n_procs)
# spawn an arbitrary number of processes
for i in range(200):
    pool.apply_async(print_something)
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

我使用 SBATCH 脚本提交此脚本,该脚本指定 Nodes=4 和 ntasks-per-node=6,但我发现 Python 脚本执行了 4*6 次。我只希望作业执行一次脚本,并允许 Slurm 在整个集群中分发进程生成。

我显然不明白这里的一些东西......?

python multiprocessing python-2.7 slurm

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

自定义git命令自动完成

我已经通过编写位于/ usr/local/bin中的shell脚本实现了自定义git命令.它工作正常,但我希望脚本在命令行中自动完成分支,就像"git checkout [TAB] [TAB]".怎么可以这样做?

编辑:只需添加一些上下文:git允许您通过创建脚本轻松添加自己的命令/usr/local/bin.在我的例子中git checkout [TAB][TAB],该脚本便于检查分支,构建,打包和安装源代码.

linux git shell

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