我创建了 env
目录,并在里面创建了名为 python
的虚拟环境 . 在另一个目录中,我喜欢运行这个bash脚本:
#!/bin/bash
app="$(pwd)/../"
pythonEnv="${app}env/python/"
source ${pythonEnv}"bin/activate"
"${pythonEnv}bin/python" "${app}scripts/script.py arg1 arg2"
但是当我运行这个脚本(到目前为止使用终端)时,我收到了这个错误:
/var/www/project/scripts/../env/python/bin/python: can't open file '/var/www/project/scripts/../scripts/script.py arg1 arg2': [Errno 2] No such file or directory
当然脚本目录中有script.py并具有正确的访问权限:
-rwxrwxr-x
我究竟做错了什么?
2 回答
阅读您的错误消息,似乎解释器认为该文件是
/var/www/project/scripts/../scripts/script.py arg1 arg2
而不仅仅是/var/www/project/scripts/../scripts/script.py
. 您应该从文件名中分隔arg1
和arg2
.此外,我认为您可以在激活虚拟环境后编写
python
而不是"${pythonEnv}bin/python"
.由于您的引用,您尝试将
"${app}scripts/script.py arg1 arg2"
称为脚本名称 - 该名称不存在 . 您可以更改脚本来修复它:根据需要调整报价,但要具体说明 . 例如,如果您需要引用
pythonEnv
变量,请执行"${pythonEnv}"
.