使用Bash脚本创建Python VirtualEnvironment时无法获取隔离环境

使用Bash脚本创建Python VirtualEnvironment时无法获取隔离环境,python,bash,virtualenv,Python,Bash,Virtualenv,当我使用bash脚本创建Python虚拟环境时,所有环境(解释器、pip和其他包)都是系统范围的包 #/bin/bash virtualenv——python python python 3 我通过以下命令进行检查: 哪个python3 哪个pip3 及 pip3列表 但是,如果我手动键入该命令,它会工作。我有一个与世隔绝的环境 有人能告诉我为什么会发生这种情况,以及如何使用脚本创建Python虚拟环境吗?(因为我想通过脚本使其自动)。 非常感谢 注意: 我没有试图以错误的方式激活环境。我

当我使用bash脚本创建Python虚拟环境时,所有环境(解释器、pip和其他包)都是系统范围的包

#/bin/bash
virtualenv——python python python 3
我通过以下命令进行检查:

哪个python3
哪个pip3

pip3列表
但是,如果我手动键入该命令,它会工作。我有一个与世隔绝的环境

有人能告诉我为什么会发生这种情况,以及如何使用脚本创建Python虚拟环境吗?(因为我想通过脚本使其自动)。 非常感谢

注意:
我没有试图以错误的方式激活环境。我确实使用
source
来激活它,并在命令行的头部获得标记。我在问为什么在bash脚本中创建虚拟环境不会复制解释器和pip的二进制文件!!!这将错过使用虚拟环境的要点据我所知,无论在哪个bash会话(当前会话或子进程)中执行creating命令,结果都应该是相同的。这就是问题所在。

源代码脚本,而不是执行它


签出源脚本,而不是执行脚本


查看

您好,此问题将要激活虚拟环境。然而,我的问题是创建一个虚拟环境。据我所知,无论我在其中创建bash会话的虚拟环境,它都应该是相同的。我想知道为什么不是。我确实使用“source”激活了环境,在激活它之后,我发现python解释器不是孤立的,但是标记仍然在命令行前面。您好,这个问题是关于激活虚拟环境的。然而,我的问题是创建一个虚拟环境。据我所知,无论我在其中创建bash会话的虚拟环境,它都应该是相同的。我想知道为什么不是。我确实使用“source”激活了环境,在激活它之后,我发现python解释器不是孤立的,但是标记仍然在命令行前面。嗨,所有这些都说明了为什么在bash脚本中激活环境不起作用。但是,我认为无论哪种环境,创作过程都应该是一样的。这就是问题所在。我确实使用“source”激活了环境,在激活它之后,我发现python解释器不是孤立的,但是标记仍然在命令行前面。嗯……好的,现在问题清楚多了!因此,如果我理解的话,您正在创建您的虚拟环境(virtualenv-p python3),然后以正确的方式激活它(source/bin/activate),但它会导致一个非隔离的python环境(正如它应该的那样),对吗?检查您的shell中是否设置了环境变量“PYTHONPATH”,如果设置了,请在激活虚拟环境之前将其取消设置。我不确定您的建议是否有效。在组服务器更新后,无法再现该问题。我不知道为什么。嗨,所有这些都说明了为什么在bash脚本中激活环境不起作用。但是,我认为无论哪种环境,创作过程都应该是一样的。这就是问题所在。我确实使用“source”激活了环境,在激活它之后,我发现python解释器不是孤立的,但是标记仍然在命令行前面。嗯……好的,现在问题清楚多了!因此,如果我理解的话,您正在创建您的虚拟环境(virtualenv-p python3),然后以正确的方式激活它(source/bin/activate),但它会导致一个非隔离的python环境(正如它应该的那样),对吗?检查您的shell中是否设置了环境变量“PYTHONPATH”,如果设置了,请在激活虚拟环境之前将其取消设置。我不确定您的建议是否有效。在组服务器更新后,无法再现该问题。我不知道为什么。