【问题标题】:Activate a Python virtualenv from a Node script从 Node 脚本激活 Python virtualenv
【发布时间】:2018-08-02 17:48:12
【问题描述】:

我正在编写一个 Node 脚本,在其中使用 pip 安装 Python 模块。我想激活一个 virtualenv,然后在该 virtualenv 中安装 pip 模块。我可以执行以下操作:

proc.execFile("virtualenv", { args: "venv" }, function() { proc.execFile("source", { args: "venv/bin/activate" }, function() { proc.execFile("pip", { args: ["install", "myPipModule"]}, function() { // 做东西 }); }); });

这样做的问题是它会丢失我的 virtualenv 的上下文,因此不会将模块安装在我想要的位置。如何在我的 Node 脚本中保留我的 virtualenv 的上下文,以便 pip install 将模块放在正确的位置?


注意:类似于this question for Python,但我使用的是Node。

【问题讨论】:

  • 对node不太熟悉,但看起来你基本上是在运行命令行。你能运行类似proc.execFile("workon", {args:"<VENV_NAME>"}) 的东西吗?我想这假设你有 virtualenvwrapper。
  • 答案与您指出的问题相同-您无需激活虚拟环境即可在其中运行pip-您只需使用虚拟环境中的python带有完整路径。
  • ????当然!来吧,把它变成一个完整的答案,我会接受它。

标签: python node.js virtualenv


【解决方案1】:

您无需激活虚拟环境即可在其中运行pip,只需使用虚拟环境中pip 二进制文件的路径,它就会将其安装在virtualenv 中。

proc.execFile("myapp/venv/bin/pip", { args: ["install", "myPipModule"]}, function() {
    // do stuff
});

【讨论】:

  • 您将如何激活通用的虚拟环境?
  • @J.Doe 通常你会运行类似source virtualenv/bin 的东西,假设你的虚拟环境被称为virtualenv
  • 我确实运行了这个命令,但没有成功。我问是因为我有这个问题:stackoverflow.com/questions/57875421/…
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 2017-12-18
  • 2018-05-05
  • 2020-01-16
  • 2015-09-04
  • 1970-01-01
相关资源
最近更新 更多