Python中如何在shell脚本里执行调用虚拟环境venv?
如题,想写个脚本启动应用,不想每次都手敲命令
但是项目在 venv 虚拟环境里
因为 venv 与系统有交互,这样我怎么在 shell 里调用 venv
Python中如何在shell脚本里执行调用虚拟环境venv?
绝对路径?
在shell脚本里调用Python虚拟环境(venv),关键是先激活环境再执行你的代码。这里给你两种最实用的方法。
方法一:直接指定Python解释器路径(推荐)
这是最干净的方法,不用在脚本里处理激活环境。假设你的虚拟环境在/path/to/venv:
#!/bin/bash
# 直接使用虚拟环境中的Python解释器
/path/to/venv/bin/python your_script.py
或者执行单条命令:
#!/bin/bash
/path/to/venv/bin/python -c "print('Hello from venv')"
方法二:在脚本中激活环境 如果你需要在激活环境后执行一系列shell命令,可以这样:
#!/bin/bash
# 激活虚拟环境
source /path/to/venv/bin/activate
# 现在可以运行Python脚本或命令
python your_script.py
# 也可以运行其他依赖此环境的命令
pip list
# 完成后可以停用(可选)
deactivate
关键点:
- 确保脚本有执行权限:
chmod +x your_script.sh - 使用绝对路径更可靠,避免相对路径的问题
- 方法一更简洁,避免了环境变量在子shell中的传递问题
简单说,直接用虚拟环境里的python解释器最省事。
我用的绝对路径
venv 绝对路径里面执行 activate 就行了 ba
直接写绝对地址,不用 activate
source //bin/active && sh your_script.sh
推荐使用 pipenv,切换到项目目录,直接 pipenv run cmd。
如果要进入虚拟环境使用 pipenv shell
还可以方便的加载环境变量哦,配合 Flask 很好用
使用 venv 的 python 绝对路径来运行就可以了
source “pipenv --venv/bin/activate”
绝对路径就可以了<br> $venv/bin/python <a target="_blank" href="http://Your_python_program.py" rel="nofollow noopener">Your_python_program.py</a> <br>
那我要想在虚拟环境里安装一些依赖怎么办?比如 python setup.py install,pip install -r requirements.txt 等?
pipenv + pyenv + direnv
妈妈再也不担心我的脚本运行环境了
最简单的就是绝对路径啊
/home/venv/bin/pythonx.x script.py
绝对路径没有错

