|
|
1
119
如果您想在virtualenv下运行Python子进程,可以通过使用virtualenv内部的Python解释器运行脚本来实现
但是,如果您想在当前Python解释器而不是子进程下激活virtualenv,可以调用
请注意,您需要使用 virtualenv 库,不是 venv ,用于上述。 如果您使用venv,您可以复制virtualenv的activate_this.py的实现,它应该或多或少地与venv一起工作,只需进行一些小的更改。 |
|
2
79
在virtualenv的解释器下运行脚本的最简单解决方案是将默认的shebang行替换为指向virtualenv解释器的路径,如脚本开头所示:
使脚本可执行:
运行脚本:
瞧! |
|
|
3
27
根据官方的说法,运行另一个Python环境 Virtualenv documentation ,在命令行中,您可以指定可执行Python二进制文件的完整路径,只需(之前无需激活virtualenv):
如果您想使用virtualenv从命令行调用脚本,也同样适用。您不需要在以下时间之前激活它:
对于Windows环境也是如此(无论是从命令行还是从脚本):
|
|
4
25
事实证明,是的,问题并不简单,但解决方案是。 首先,我必须创建一个shell脚本来包装“source”命令。也就是说,我使用了“.”,因为我读到过使用它比Bash脚本的源代码更好。
然后,通过我的Python脚本,我可以简单地执行以下操作:
整个技巧在于
当Python解释器退出时,它会将当前shell留在激活的环境中。 赢 |
|
5
8
这只是一个对我有效的简单解决方案。我不知道为什么你需要Bash脚本,它基本上只做了一个无用的步骤(我错了吗?)
它基本上满足了您的需求:
然后,不停用虚拟环境,只需 Ctrl键 + D 或退出。这是一个可能的解决方案吗?或者这不是你想要的吗? |
|
6
8
最高答案仅适用于Python2.x 对于Python 3.x,请使用以下方法:
|
|
7
2
子进程环境在其不存在的那一刻就丢失了,将环境内容从那里移动到父进程有点棘手。 您可能需要生成一个shell脚本(可以动态生成一个到/tmp),该脚本将把virtualenv环境变量输出到一个文件中,然后在父Python进程中读取该文件并将其放入os.environ中。 或者,您只需使用解析activate脚本中的open(“bin/activate”)行,手动提取内容,然后放入os.environ。这很棘手,但并非不可能。 |
|
|
8
1
对于python2/3,使用下面的代码片段我们可以激活虚拟环境。
|
|
|
9
1
我也有同样的问题,但没有
activate_this.py
将文件复制到
参考: https://github.com/dcreager/virtualenv/blob/master/virtualenv_support/activate_this.py |
|
|
10
0
与相关
this response
关于
如果这是您的用例(在同一进程上激活virtualenv),您可能有兴趣使用
activate-virtualenv
,一个上下文管理器,它根据
用法示例:
然后
|
|
|
11
0
首先,让我说一下我是如何解释这个问题的:
简短的回答是: 并非没有shell的帮助——因为以正常方式编写的任何命令都将是一个子进程,无法直接修改shell中的设置。 也就是说,有一些方法可以从shell获得帮助,因此,例如,假设有一个脚本如下(伪代码):
现在,假设(基于问题文本)您希望能够将其作为
然而,这有一个缺点,那就是它没有一个很好的方法来获取参数,所以运行
无论你和谁一起去,你大概都会把它保存在你的
对于函数形式,这允许
类型
奖励:自激活脚本:所以,以上都是对所问问题的回答。不过,我得出这个答案是为了找到另一个问题的解决方案。我的问题可以概括为:
为此,可以运行以下内容(我找到了自己的解决方案)。为了这个例子,我假设venv在一个名为
或者,对于我们需要强制venv的内容的简短版本:
(由于缺乏
|
|
12
-1
您应该创建所有
假设您的virtualenv文件夹名称是virt,如果不更改它
复制以下行。。。
创建一个shell脚本文件并粘贴上面的行。。。
授予文件可执行权限:
现在导出该自定义文件夹路径,以便您可以通过单击选项卡在命令行上找到它。。。 export PATH=$PATH:“$HOME/custom” 现在,只需键入以下命令,就可以在任何地方使用它。。。
假设是abc,那么。。。
|