2015-06-12 746 views
0

我有以下bash脚本:使用bash脚本执行Python程序

export MYCONFIG_CONFIG=TEST 
/home/bmwant/projects/test/venv/bin/python3 /home/bmwant/projects/test/script.py 

我的Python脚本需要一个我已经设置环境变量,但运行该脚本

bash run_python.sh 

显示错误

/home/bmwant/projects/test/venv/bin/python3: can't open file 'home/bmwant/projects/tes': [Errno 2] No such file or directory 

出了什么问题?我已将脚本设置为可执行文件chmod u+x run_python.sh

+1

尝试将引号中的python脚本路径加入并仔细检查其正确性 – heinst

+1

错误中目录中缺少't'? –

+0

'home/bmwant/projects/tes'应该是'home/bmwant/projects/test'(缺少t)吗? –

回答

0

那么,问题是文件格式。我已经在Windows中创建了它,然后通过FileZilla复制到我尝试运行它的远程服务器。所以只要运行

apt-get install dos2unix 
dos2unix run_python.sh 
bash run_python.sh 

所有的都会正常工作。感谢@霍斯特的提示。

+0

请接受此答案(或删除问题),以便不再出现未解决的问题。谢谢。 – tripleee

1

已使script.py可执行文件?

chmod u+x /home/bmwant/projects/test/script.py 

试试这个脚本:

#!/bin/bash 
export MYCONFIG_CONFIG=TEST 
pushd /home/bmwant/projects/test/venv/bin/ 
./python3 /home/bmwant/projects/test/script.py 
popd 

您可以通过运行:

./run_python.sh 
+0

'-bash:./run_python.sh:/斌/庆典^ M:坏的解释:没有这样的文件或directory' –

+2

不好意思啊......做了'DOS2UNIX的run_python.sh' ... Linux的碰撞我的Windows换行符!̶废话,但它应该有所帮助;) – Horst

+0

你可能是指./python3而不是'.python3'。有了这种修复方法,如果症状是由只允许很短的路径名称引起的,那么这可能会起作用,但这会非常有用 - 我的猜测是这无济于事。 (另外,'pushd' /'popd'是多余的 - 当脚本结束时,脚本的工作目录将会丢失。你可以用'cd'替换'pushd'。) – tripleee