当前位置: 首页 > 面试题库 >

使用Python脚本激活virtualenv

边永贞
2023-03-14
问题内容

我想从Python脚本激活virtualenv实例。

我知道这很容易做到,但是我看过的所有示例都使用它在env中运行命令,然后关闭子进程。

我只是想激活virtualenv并返回外壳,就像bin / activate一样。

像这样:

$me: my-script.py -d env-name
$(env-name)me:

这可能吗?


问题答案:

如果要在virtualenv下运行Python子进程,可以通过使用位于virtualenv/ bin /目录中的Python解释器运行脚本来实现:

# Path to a Python interpreter that runs any Python script
# under the virtualenv /path/to/virtualenv/
python_bin = "/path/to/virtualenv/bin/python"

# Path to the script that must run under the virtualenv
script_file = "must/run/under/virtualenv/script.py"

subprocess.Popen([python_bin, script_file])

但是,如果要在当前的Python解释器下而不是子进程下激活virtualenv,则可以使用以下activate_this.py脚本:

# Doing execfile() on this file will alter the current interpreter's
# environment so you can import libraries in the virtualenv
activate_this_file = "/path/to/virtualenv/bin/activate_this.py"

execfile(activate_this_file, dict(__file__=activate_this_file))


 类似资料:
  • 问题内容: 我希望运行一个简单的Shell脚本来简化某些conda环境的管理。在os中通过os激活conda环境在shell中工作正常,但在shell脚本中却存在问题。有人可以指出为什么发生这种情况的正确方向吗? 重复该问题的示例: 问题答案: 错误消息很有帮助-告诉您在运行脚本的子外壳中未正确设置conda。要在脚本中使用conda,您将需要(如错误消息所述)运行(或您的外壳是什么)首先。con

  • 问题内容: 在Windows Vista上,我需要一个脚本来启动(以激活virtualenv)脚本: 然后,在虚拟环境中,开始到文件夹中的: 我应该怎么做?我应该使用什么模块? 问题答案: 您可以激活您的virtualenv,然后使用bat文件启动服务器。将此脚本复制到文件中,并以.bat扩展名保存(例如runserver.bat) 然后,您可以运行此bat文件(只需双击)以启动服务器

  • 问题内容: 我正在创建Django Web应用程序,并使用Conda来管理所需的程序包和虚拟环境。我想在激活环境后立即设置环境变量(Django设置位置)。它还应该将当前目录更改为我的项目目录。 我以前使用virtualenvwrapper,只是将命令添加到了postactivate脚本中。 如何使用Conda实现此目的? 问题答案: 自conda v3.8起(在询问此问题之后),该功能已可用。激

  • 在视窗和蟒蛇 3.9x 中运行 VS 代码 我创建了一个新的项目文件夹,并为此项目创建了一个新的虚拟环境。我创建的第一个脚本是一个 .ipynb 文件(jupyter 笔记本),它工作正常。当我将脚本导出到.py文件时,它在第一行代码上生成错误: < code >从pynput导入键盘 模块未发现错误: 没有名为“pynput”的模块 pynput库安装在这个虚拟环境中,这就是. ipynb文件运

  • 当实例的试用期结束时,Navicat Monitor 需要令牌以继续监控该实例。令牌可以作为永久许可证或订阅购买。若要管理你的令牌并许可你的实例,请前往“配置”->“激活令牌密钥和许可实例”。 【注意】永久许可证和订阅方案不能在同一个 Navicat Monitor 上使用。在更改激活方法之前,你需要取消激活令牌密钥或退出你的 Navicat ID。 永久许可证 如果你购买了永久许可证,你将收到一

  • 在 3.1创建用户 中,我们注册了一个用户,并且产生了激活码,这个时候,我们得到激活码,怎么激活用户呢? 其实很简单,看代码 try { // 根据 userid 查询用户 $user = Sentry::findUserById(1); // 使用激活码激活用户 if ($user->attemptActivation('产生的激活码')) {