【问题标题】:Get virtualenv or python path in views在视图中获取 virtualenv 或 python 路径
【发布时间】: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。更好的是,重构您的代码,以便管理命令和视图调用一个通用函数。

标签: django python-3.x subprocess virtualenv


【解决方案1】:

@DanielRoseman 的想法很棒,我使用 management.call_command 而不是 subprocess,它工作正常,隐式传递了正确的虚拟环境

【讨论】:

    【解决方案2】:

    你试过request.META吗?

    我在那里发现了一些有用的信息。 (我现在使用pyenv,发现PATHPYENV_DIRPYENV_ROOTPYENV_VIRTUAL_ENVVIRTUAL_ENV等等。)

    【讨论】:

    • 已经试过了,但是这些变量只有在我在开发环境中时才会给出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多