我正在使用pip安装一个新的Python包。我想用一个命令在我当前的所有虚拟环境中安装这个包。这可能吗?如果可能,我该怎么做?你知道吗
目前,当我想在虚拟环境中安装一个新的Python包“xyz”时,我激活该venv,然后在命令行中使用标准的pip安装“xyz”。但是,这只会将其安装在当前激活的虚拟环境中。当然,这首先是虚拟环境的重要组成部分。你知道吗
如果我想在我所有的虚拟环境中安装软件包“xyz”,我必须为我的每个环境激活install deactivate。你知道吗
我希望避免这个安全但费力的过程,只需使用一个命令就可以将一个新包“xyz”安装到我当前的所有虚拟环境中。你知道吗
例如: 我列出现有的虚拟环境(在本地计算机上):
λconda env列表
康达环境:
基本*C:\ProgramData\Anaconda3 cntk C:\ProgramData\Anaconda3\envs\cntk fastai C:\ProgramData\Anaconda3\envs\fastai公司
我想在所有环境(base、cntk、fastai)中安装的软件包是pydicom。你知道吗
λ激活基
(底座)λpip安装pydicom
(基)λipython Python 3.7.3(默认值,2019年4月24日,15:29:51)[MSC v.1915 64位(AMD64)] 键入“copyright”、“credits”或“license”以获取详细信息 iPython7.5.0——增强的交互式Python。键入“?”寻求帮助。你知道吗
在[1]中:导入pydicom 在[2]中:
(基)λconda
λ激活cntk
(cntk)λipython
Python 3.6.8 | Anaconda,Inc.|(默认值,2019年2月21日,18:30:04)[MSC v.1916 64位(AMD64)] 键入“copyright”、“credits”或“license”以获取详细信息 iPython7.4.0——增强的交互式Python。键入“?”寻求帮助。你知道吗
在[1]中:导入pydicom
ModuleNotFoundError回溯(最近一次调用) 在里面 ---->;1导入pydicom
ModuleNotFoundError:没有名为“pydicom”的模块
在[2]中:
这一切都很好,文夫正在做它的工作。你知道吗
λconda激活cntk
(cntk)λpip安装pydicom
收集pydicom 使用缓存的https://files.pythonhosted.org/packages/43/88/d3c419ab2e753e7651510882a53219373e78fb55294cb247dffd3934ea55/pydicom-1.2.2-py2.py3-none-any.whl 安装收集的包:pydicom 已成功安装pydicom-1.2.2
(cntk)λipython
Python 3.6.8 | Anaconda,Inc.|(默认值,2019年2月21日,18:30:04)[MSC v.1916 64位(AMD64)] 键入“copyright”、“credits”或“license”以获取详细信息 iPython7.4.0——增强的交互式Python。键入“?”寻求帮助。你知道吗
在[1]中:导入pydicom
在[2]中:
显然,这一次我在venv中安装了pydicom,它起了作用。你知道吗
理想情况下,会有如下命令: $pip安装--
或者
$pip安装--全部
安装到提供的venv或所有可用的venv列表中。你知道吗
我在考虑一些变通方法,比如使用$conda env list,然后解析输出。使用一个简单的脚本依次安装到每个列出的venv中。这条思路把我带到了我的子问题:
问:有没有可能在虚拟环境中安装一个Python包,而不首先激活那个venv?你知道吗
我怀疑有一个简单的单行线解决方案(尽管那将是伟大的),所以建议的变通办法是受欢迎的。你知道吗
如果我的意图是自动将一个新的Python包安装到所有的venv中,这与最佳实践不一致,那么也欢迎您提出警告。你知道吗
我使用virtualenvwrapper,它有一个命令
allvirtualenv
,所以我可以运行我甚至更新了
~/.tox
中由tox创建的所有虚拟环境。我的整个脚本run-all-venv
是我把它当作
“激活”并不神奇,它只是将virtualenv可执行文件的位置预先添加到您的路径中,并更改您的提示。如果您想在不激活的情况下将某个内容安装到virtualenv中,您只需执行以下操作:
至于安装到所有的虚拟环境,我不认为有任何自动的方法来做到这一点,特别是因为环境可以生活在任何地方,所以你需要一种方法来发现他们以及。但是如果您愿意,可以很容易地将上面的命令与env位置列表结合起来。你知道吗
相关问题 更多 >
编程相关推荐