python - 在 virtualenv 中运行 python 脚本的 Bash 脚本

标签 python linux bash virtualenv

我正在创建需要运行 python 脚本的 PHP 应用程序。我必须使用 virtualenv。在项目目录中,我创建了 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

当然在scripts目录下有script.py并且有正确的访问权限:

-rwxrwxr-x

我做错了什么?

最佳答案

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

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

关于python - 在 virtualenv 中运行 python 脚本的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257321/

相关文章:

linux - 该脚本有时在 wget 之后不运行

linux - Linux 上响应 free 命令的可用内存和可用内存是什么?

linux - gzip 在脚本中已经有 gz 后缀不变

bash - 如何将传递给我的 Bash 脚本的所有参数传递给我的函数?

python - Pandas 转换类型并将无效值设置为 na

c# - 是否可以通过命令提示符从 C# 运行 python 代码?

c++ - mariadb 多平台项目

linux - 等待进程完成的 shell 脚本在新终端中运行

python - 在 Excel 工作表中查找填充内容的范围

python - 使用 sqlalchemy 更新基于 python 列表的数据库表