在Conda环境中运行,无需安装pip软件包



我正在创建一个Conda环境,并希望确保它允许任何人在我的存储库中运行脚本,而不必单独安装任何东西。但是,我的机器上已经安装了pip install的一些包,所以,如果我理解正确的话,我的一些导入可能会工作,因为我安装了它们,而不是因为它们安装在Conda环境中。

例如,假设我使用conda create --name my_env python=3.8.8创建了一个环境。这不应该安装Pandas,但如果我运行import pandas as pd,它就可以工作了。我相信这是因为我已经安装了熊猫。我的问题是:

如何测试脚本是否仅适用于安装在conda环境中的包

您可以根据conda安装的历史记录创建一个yaml文件:

conda env export --from-history --name my_env > myenv.yml

在此基础上,您创建了一个新的conda环境,可以使用它来测试您的脚本:

conda env create --name conda_only --file myenv.yml

Python有可以忽略PYTHONPATH(-E(和默认系统或用户级site-packages(-S(的标志,还有可以同时忽略这两个标志的组合标志(-I((请参阅python -h(。尝试使用这样的标志与系统隔离。类似

conda run -n my_env python -I script.py

此外,需要澄清的是,只有当您使用--user标志(触发包的用户级安装(或某个备用位置(例如--root--prefix标志(并设置了PYTHONPATH以使其可访问时,pip install才是这样的问题。

最新更新