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

如何在子外壳中激活conda env?

刘辰钊
2023-03-14
问题内容

我写了一个python程序。如果我有一个像这样的shebang:

#!/usr/bin/python

然后使用以下命令使文件可执行:

$ chmod 755 program.py

我可以这样运行程序

$ ./program.py

这是问题。我使用conda虚拟环境。当我运行上述程序时,系统会创建一个无法识别活动环境的子外壳:

(my_env) $ ./program.py
ImportError: No module named pymongo

但是如果我这样做的话…

(my_env) $ python program.py
# blah blah... runs great

如何指定在子Shell中使用的正确环境?可能吗?我希望省去输入六个字符串的麻烦python

另一篇文章,在conda托管环境中的Shebangs,简短地谈到了这一点,但没有提供正确的答案。它只是说,继续而不是在子外壳中激活环境,而忽略shebang
…只是使用$ python program.py语法。


问题答案:

如果您始终计划从conda定义的shell会话中运行脚本,那么另一种替代方法是让Conda使用conda run命令加载环境。在这种情况下,shebang将是

#!/usr/bin/env conda run -n my_env python

这样做的好处是调用时不需要激活env ./program.py,也不必对解释器的位置进行硬编码。

注意: 此命令已在Conda
v4.6.0(请参见发行说明)中作为“预览”添加,以解决在env中运行命令的问题。



 类似资料:
  • 这是我在我的项目中使用的一个库依赖项: 我对在项目中使用感兴趣。该类是一个,用于处理所有异常。 然而,我不太明白如何将这个建议激活到我的项目中。

  • 问题内容: 我陷入了Eclipse 4 RCP应用程序的一个问题。我需要记录一些事件。我需要以某种方式获得对记录器的引用。我知道如何使用来做到这一点,但是我仍然找不到在没有依赖注入的情况下如何获得的方法,而依赖注入无法在激活器中使用。有人知道吗,请问如何解决这个问题? 非常感谢 问题答案: 令人遗憾的是,没有注射就无法获得。关于如何在未附加到应用程序模型的类中使用eclipse 4 DI的答案中写

  • 问题内容: 我已经设置了PyCharm,创建了我的virtualenv(通过virtual env命令,或者直接在PyCharm中),并将那个环境激活为我的解释器。一切都很好。 但是,如果我使用“工具,打开终端”打开终端,则提供的shell提示未使用虚拟环境。我仍然必须在该终端内使用才能激活它。 另一种方法是在外壳中激活环境,然后从该环境运行PyCharm。这是“可行的”但很丑陋,这意味着如果我从

  • 我对这一切都不熟悉,我已经尽我所能地遵循教程,我想尝试一下网络应用开发,但我显然在做什么或错过什么。 我在Atom终端上运行了pip install Django,它说安装成功,但发出了一个警告,说明我的安装文件不在路径中,尽管该文件实际上在路径上,但我相信我已经解决了这个问题。 然后,我尝试按照Django教程进行操作,该教程告诉我pip安装venv,我无法让它正常工作,但我确实在Atom At

  • 问题内容: 我在Windows 8上,使用Anaconda 1.7.5 64bit。 我创建了一个新的Anaconda环境 来自。 效果很好(有一个带有新python发行版的文件夹)。康达告诉我输入 激活环境,但是返回: 如何激活环境?我究竟做错了什么? 问题答案: 如果发生这种情况,则需要为您的环境设置PATH(以便从环境和Windows上的Scripts \中获取正确的Python)。 假设您

  • 具有方法: 但是,它在属性提供的facade中不可用/公开 下面是有关RuntimeConfiguration的更多信息: 在创建自己的SparkSession时,有一个明确的解决方法:我们可以调用提供给 然后是一个不太清楚的... 但在运行Spark shell时,已经创建了sparkSession(sparkContext)。那么,如何使非运行时设置生效呢? 这里特别需要: 当尝试在可用于sp