【问题标题】:shell script within Conda env can't execute mkdirConda env 中的 shell 脚本无法执行 mkdir
【发布时间】:2018-06-30 22:21:36
【问题描述】:

我们在一个运行 conda 的 Ubuntu 系统上。 在一个环境(python2、pandas、其他包)中,我们试图运行一个 shell 脚本: 1. 创建目录(mkdir) 2.运行路径在PATH (.bashrc)中的可执行文件

这些都不起作用,我想是我们的配置错误。

以下是错误:

mkdir: cannot create directory ‘ResultsSparCC/Resamplings2’: No such file or directory
mkdir: cannot create directory ‘ResultsSparCC/Bootstraps’: No such file or directory
./sparccWrapper.sh: line 31: ResultsSparCC/sparcc.log: No such file or directory
Traceback (most recent call last):
  File "/home/charlesh/binf/src/sparcc/MakeBootstraps.py", line 9, in <module>
from analysis_methods import permute_w_replacement
  File "/home/binf/src/sparcc/analysis_methods.py", line 7, in <module>
from pandas import DataFrame as DF
    ImportError: No module named pandas

但是环境中安装了pandas:

$conda list|grep pandas
pandas                    0.23.1           py27h637b7d7_0  

这是脚本中违规代码的 sn-p:

#!/bin/bash
////
INPUT_PATH="foo.txt"
OUTPUT_PATH="ResultsSparCC"
///
mkdir  $OUTPUT_PATH/Resamplings2
mkdir  $OUTPUT_PATH/Bootstraps

建议?

【问题讨论】:

  • 您是否希望您的脚本创建目录ResultsSparCC
  • @ResultsSparCC 是对的,如果 $OUTPUT_PATH 也不存在,使用mkdir -p

标签: bash shell miniconda


【解决方案1】:

主要建议是:阅读错误信息。

mkdir: cannot create directory ‘ResultsSparCC/Resamplings2’: No such file or directory

mkdir 抱怨没有目录ResultsSparCC 应该在其中创建Resamplings2

那么,如果你做ls -l,你看到目录ResultsSparCC了吗?可能不是。如果您手动执行“mkdir ResultsSparCC/Resamplings2”会发生什么?

如果您创建目录ResultsSparCC,所有脚本都应该可以工作。

或者,使用mkdir -p:

#!/bin/bash
#////
INPUT_PATH="foo.txt"
OUTPUT_PATH="ResultsSparCC"
///
mkdir -p $OUTPUT_PATH/Resamplings2
mkdir -p $OUTPUT_PATH/Bootstraps

【讨论】:

  • 谢谢 - 已解决的问题(我犯了愚蠢的错误)
最近更新 更多