在视图中获取 virtualenv 或 python 路径
Posted
技术标签:
【中文标题】在视图中获取 virtualenv 或 python 路径【英文标题】:Get virtualenv or python path in views 【发布时间】:2018-10-18 05:24:39 【问题描述】:我正在运行一个带有 virtualenv 的 Django 项目,我想查看运行 python 或我正在使用的虚拟环境的路径
目标是将此路径传递给子进程以执行脚本
谢谢
【问题讨论】:
我认为这是多余的,执行脚本的子进程将自动使用与 django 相同的 python venv。 另外,如果你想在同一个环境中运行一个 Python 脚本,为什么不导入它而不是作为一个子进程运行呢? @Ykh 确实,但仅在我的本地机器上,当我打开 prod 时,它选择安装的第一个 python (2.7) 版本并且没有 virtualenv @DanielRoseman 我正在使用子进程,因为我在视图文件中,我想传递一些参数并跟踪标准输出我的脚本是 django-admin 命令 那么你应该使用management.call_command
,见the docs。更好的是,重构您的代码,以便管理命令和视图调用一个通用函数。
【参考方案1】:
@DanielRoseman 的想法很棒,我使用 management.call_command 而不是 subprocess,它工作正常,隐式传递了正确的虚拟环境
【讨论】:
【参考方案2】:你试过request.META
吗?
我在那里发现了一些有用的信息。
(我现在使用pyenv
,发现PATH
、PYENV_DIR
、PYENV_ROOT
、PYENV_VIRTUAL_ENV
、VIRTUAL_ENV
等等。)
【讨论】:
已经试过了,但是这些变量只有在我在开发环境中时才会给出以上是关于在视图中获取 virtualenv 或 python 路径的主要内容,如果未能解决你的问题,请参考以下文章
无法在 aws amazon linux v2 内的 django 视图函数中检索或创建数据库对象