Python 脚本从 docker 容器中的 R 脚本调用问题

Python script calling issue from a R script in docker container

提问人:PesKchan 提问时间:11/9/2023 最后编辑:PesKchan 更新时间:11/9/2023 访问量:25

问:

我有一个docker映像,这是文件/文件夹结构

docker exec -it ec71a4e7a /bin/sh
# ls
bin   dev              etc              home  lib    media            methylKit.R  opt                  proc  run                 sbin  sys  usr
boot  environment.yml  filter_parse.py  HOME  lib64  merge_methyl.py  mnt          out.mm10_refseq.tsv  root  run_DMR_calling.py  srv   tmp  var

所以这里是发生的事件的顺序。

  1. 调用run_DMR_calling.py,它调用 methylKit.R。
  2. 上述事件按原样工作。因此,在上面的 R 脚本中,我有一个需要过滤的步骤,其中从 R 脚本接收输入。

所以现在在 R 脚本中,调用 python 脚本的代码部分是这样的

###### run filter and unfiltered files
filename <- paste0(bioset_folder, "/", biosetFile_name, ".txt")

#cmd <- paste0('python merge_methyl.py out.',args$genome,'_refseq.tsv "', filename,'"')
cmd <- paste0('python filter_parse.py out.',args$genome,'_refseq.tsv "', filename,'"')

#print(cmd)

system(cmd)

现在我面临的问题是这个错误

python: can't open file 'filter_parse.py': [Errno 2] No such file or directory

到目前为止,我的理解是,由于所有脚本都在同一个地方,它应该能够调用 python 脚本,但这不起作用。

我该如何解决这个问题,任何建议或帮助将不胜感激

######### 更新 ################

 docker exec -it 820dc6455 pwd
/
docker exec -it 820dc6455 ls -l
total 1444
drwxr-xr-x.   1 root   root      179 Mar 16  2022 bin
drwxr-xr-x.   2 root   root        6 Aug 22  2021 boot
drwxr-xr-x.   5 root   root      360 Nov  9 09:23 dev
-rw-r--r--.   1 root   root      131 Mar 16  2022 environment.yml
drwxr-xr-x.   1 root   root       66 Nov  9 09:23 etc
-rw-r--r--.   1 661237 32840    4629 Nov  7 16:07 filter_parse.py
drwxr-xr-x.   1 root   root       20 Oct 12  2021 home
drwxr-xr-x.   1 root   root       52 Mar 16  2022 HOME
drwxr-xr-x.   1 root   root       30 Nov  1  2021 lib
drwxr-xr-x.   1 root   root       34 Mar 16  2022 lib64
drwxr-xr-x.   2 root   root        6 Oct 11  2021 media
-rwxr-xr-x.   1 661237 32840    4579 Nov  7 15:57 merge_methyl.py
-rwxr-xr-x.   1 661237 32840   10571 Nov  7 16:15 methylKit.R
drwxr-xr-x.   2 root   root        6 Oct 11  2021 mnt
drwxr-xr-x.   1 root   root       19 Mar 16  2022 opt
-rw-r--r--.   1 661237 32840 1430277 Nov  1 14:06 out.mm10_refseq.tsv
dr-xr-xr-x. 218 root   root        0 Nov  9 09:23 proc
drwx------.   1 root   root       27 Aug  2 13:58 root
drwxr-xr-x.   3 root   root       18 Oct 11  2021 run
-rwxr-xr-x.   1 root   root     9861 Jun  3 15:06 run_DMR_calling.py
drwxr-xr-x.   1 root   root       22 Mar 16  2022 sbin
drwxr-xr-x.   2 root   root        6 Oct 11  2021 srv
dr-xr-xr-x.  13 root   root        0 Jul  7 09:57 sys
drwxrwxrwt.   1 root   root        6 Nov  8 15:24 tmp
drwxr-xr-x.   1 root   root       19 Oct 11  2021 usr
drwxr-xr-x.   1 root   root       41 Oct 11  2021 var
(base) [kmurma@sgnt-dev-deso03 makee_Fast]$ docker exec -it 820dc6455 python --version
Python 2.7.16 :: Anaconda, Inc.
 docker exec -it 820dc6455 find / -name "filter_parse.py"
find: ‘/proc/1/map_files’: Operation not permitted
find: ‘/proc/38/map_files’: Operation not permitted
/filter_parse.py
python r 码头工人

评论


答: 暂无答案