首页 文章

用于在virtualenv中运行python脚本的Bash脚本

提问于
浏览
1

我创建了 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 回答

  • 2

    阅读您的错误消息,似乎解释器认为该文件是 /var/www/project/scripts/../scripts/script.py arg1 arg2 而不仅仅是 /var/www/project/scripts/../scripts/script.py . 您应该从文件名中分隔 arg1arg2 .

    此外,我认为您可以在激活虚拟环境后编写 python 而不是 "${pythonEnv}bin/python" .

  • 3

    由于您的引用,您尝试将 "${app}scripts/script.py arg1 arg2" 称为脚本名称 - 该名称不存在 . 您可以更改脚本来修复它:

    ${pythonEnv}bin/python ${app}scripts/script.py arg1 arg2
    

    根据需要调整报价,但要具体说明 . 例如,如果您需要引用 pythonEnv 变量,请执行 "${pythonEnv}" .

相关问题