我试图运行这个管道,但在函数def run_ccs(args(中出现了一个错误:
Traceback (most recent call last):
File "run_pipeline.py", line 307, in <module>
run_ccs(args)
File "run_pipeline.py", line 214, in run_ccs
% (args.threads, repo_dir, repo_dir, working_dir, args.ccs_reads, working_dir), shell=True).wait()
NameError: global name 'working_dir' is not defined
代码为:
https://github.com/mjsull/COVID_pipe/blob/master/run_pipeline.py
在函数内部定义变量会导致该变量具有";功能范围";。该变量只存在于定义它的点和定义它的函数的末尾之间。
您在两个函数中定义了一个名为working_dir
的变量。您尝试在名为run_ccs
的第三个函数中使用名为working_dir
的变量,但尚未在该函数的范围内定义该变量。您可以用该名称定义一个变量,并在函数中引用它之前为其赋值,也可以在";全球范围";通过在函数定义之外(与函数定义处于同一级别(定义它。在函数内部使用之前定义它的一种方法是让函数接受一个具有该名称的参数。
确切地说,如何解决这个问题将取决于您希望代码在run_ccs
函数中如何获得working_dir
变量表示的值方面做什么。如果您分配给具有相同名称的其他变量的值是相同的,那么我希望您在run_css
中执行与在其他函数中相同的操作来获得该值。但由于其他两个函数的值不同,我不知道你希望这个变量的值在第三个函数中是什么。