gpt4 book ai didi

python - 如何在同一虚拟环境中将私有(private)使用的包与与项目相关的包分开?

转载 作者:行者123 更新时间:2023-12-02 01:56:27 25 4
gpt4 key购买 nike

以下是使用虚拟环境时的典型工作流程:

1)创建虚拟环境:

python3 -m venv venv

2)激活它:

源 venv/bin/activate

3)安装所需的要求:

(venv): pip install ...

4)(编写Package的代码)

5) 卡住代码/创建包依赖项。

最后选择的 python 工具包装了第 3) pip 安装的虚拟环境中的所有软件包。

这是我的问题。如果第 3) pip 安装的某些需求只是仅供我用于开发目的的私有(private)包怎么办?例如,为了让 Spyder 编辑器在不同的虚拟环境中工作,我需要安装spyder-kernels。我的包不需要它们,如果其他开发人员不使用此编辑器,也不需要它们。然而,当我

(venv): pip freeze >requirements.txt

我得到了requirements.txt,其中包含spyder-kernels包,然后

(venv2): pip install -r requests.txt

安装requirements.txt中的所有软件包,除非我手动删除不需要的行。

pip install 是否有任何标志可以告诉 pip 将某些软件包安装为隐藏/私有(private)以进行卡住/打包过程?或者任何其他可以实现我的目标的自动解决方法?完美的场景应该是这样的:

python3 -m venv venv
source venv/bin/activate
(venv): pip install important_packages
(venv): pip install -privateFLAG spyder-kernels
(venv): pip freeze > requirements.txt # (stores important_packages)
(venv): pip freeze -privateFLAG > private_requirements.txt

然后可以选择使用以下命令重新创建环境依赖项:'''pip install -r requests.txt'''或者'''pip install -r requests.txt private_requirements.txt'''如果他需要 private_requirements.txt 中的任何内容。

我们可以做一些类似的技巧来卡住代码吗?

最佳答案

我不知道 pip 中有这样的功能。

当您安装“私有(private)”软件包时,您可以将所述软件包添加到文件中,例如private_requirements.txt。然后,使用一个简单的 shell 脚本,您可以过滤 pip freeze 的输出,如果包出现在 private_requirements.txt 中,则应从 freeze 输出中删除匹配的行.

实现起来应该不难,例如您可以使用:

pip freeze | grep -v -f private_requirements.txt > requirements.txt

关于python - 如何在同一虚拟环境中将私有(private)使用的包与与项目相关的包分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61020477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com