比较来自世界各地的卖家的域名和 IT 服务价格

启用 virtualenv 使用脚本 Python

我想激活一个实例 virtualenv 来自脚本 Python.

我知道它很容易做,但我看到的所有例子都用它来运行命令 env, 然后关闭子过程。

我只是想激活 virtualenv 并返回K. shell, 就像它一样 bin/activate.

类似的东西:


$me: my-script.py -d env-name
$/env-name/me:


是否有可能?

合适的:

http://groups.google.com/group ... abeae
已邀请:

诸葛浮云

赞同来自:

如果要运行subprocess Python 在下面 virtualenv, 您可以通过使用解释器运行脚本来执行此操作 Python, 哪个是目录 virtualenv /bin/:


import subprocess

# 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]/


但是,如果您想激活 virtualenv 在当前的翻译 Python 而不是子进程,可以使用脚本
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//

冰洋

赞同来自:

在VirtualEnv解释器下启动脚本的最简单解决方案是替换字符串 shebang 默认在您的解释器的路径上 virtualenv, 例如,在脚本的开头:


#!/path/to/project/venv/bin/python


制作脚本可执行文件:


chmod u+x script.py


运行脚本:


./script.py


瞧!

小姐请别说爱

赞同来自:

事实证明,问题并不简单,但有一个解决方案。

首先我需要创建一个脚本 shell, 包裹命令 "source". 尽管如此,我用过 "." 相反,因为我读到它比脚本的源代码更好地使用它 Bash.


#!/bin/bash
. /path/to/env/bin/activate


然后来自我的场景 Python 我可以做到这一点:


import os
os.system/'/bin/bash --rcfile /path/to/myscript.sh'/


整个重点是争论
--rcfile

.

当翻译时 Python 完成工作,他离开了当前 shell 在激活的环境中。

胜利!

风见雨下

赞同来自:

运行另一个环境 Python 据官方说
https://virtualenv.pypa.io/en/ ... cript
Virtualenv , 在命令提示符中,您可以指定可执行二进制文件的完整路径 Python, 这很简单 /不需要激活 virtualenv 早些时候/:


/path/to/virtualenv/bin/python


如果要从命令行调用脚本,则相同适用 virtualenv. 您不需要之前激活它:


me$ /path/to/virtualenv/bin/python myscript.py


环境也是如此 Windows /无论是来自命令行还是来自脚本/:


> \path\to\env\Scripts\python.exe myscript.py

奔跑吧少年

赞同来自:

只是一个适合我的简单解决方案。 我不知道为什么你需要脚本 Bash, 基本上是一个无用的步骤 /我错了 ?/


import os
os.system/'/bin/bash --rcfile flask/bin/activate'/


基本上是您所需要的:


[hellsing@silence Foundation]$ python2.7 pythonvenv.py
/flask/[hellsing@silence Foundation]$


然后只是简单地取消激活虚拟环境

Ctrl

+

D

或者 exit. 这是一个可能的解决方案,也是你想要的吗?

裸奔

赞同来自:

在它停止存在时,儿童进程的星期三丢失,并从那里移动到父母的媒体内容有些困难。

可能你需要创建一个脚本 shell /您可以动态生成它 /tmp/, 它将显示环境变量 virtualenv 到一个文件,然后将在父进程中读取 Python 并放置在 os.environ.

或者,您只拆卸了激活脚本以用于字符串 open/"bin/activate"/, 手动卸下材料并插入 os.environ. 很难,但不是不可能的。

小姐请别说爱

赞同来自:

最佳响应仅适用于 Python 2.x

为了 Python 3.x 用它:


activate_this_file = "/path/to/virtualenv/bin/activate_this.py"

exec/compile/open/activate_this_file, "rb"/.read//, activate_this_file, 'exec'/, dict/__file__=activate_this_file//


关联:
https://coderoad.ru/436198/

八刀丁二

赞同来自:

你必须创建所有的
virtualenv

s 例如,在一个文件夹中
virt

.

假设您的文件夹名称 virtualenv-virt, 如果你没有改变它


cd
mkdir custom


复制以下行...


#!/usr/bin/env bash
ENV_PATH="$HOME/virt/$1/bin/activate"
bash --rcfile $ENV_PATH -i


创建脚本文件 shell 并插入上面的线条......


touch custom/vhelper
nano custom/vhelper


提供可执行文件权限以访问您的文件:


sudo chmod +x custom/vhelper


现在将此路径导出到用户文件夹,以便按按键在命令行上找到它 tab...

出口 PATH=$PATH:"$HOME/custom"

现在您可以使用它在任何地方,只是获得以下命令......


vhelper YOUR_VIRTUAL_ENV_FOLDER_NAME


假设它是 abc...


vhelper abc

要回复问题请先登录注册