若我使用这个项目的git克隆,那个么项目中安装的所有python模块都将被安装

若我使用这个项目的git克隆,那个么项目中安装的所有python模块都将被安装,git,github,Git,Github,也许这个问题被问了很多次,但我什么也没发现。我有一个包含许多python包的项目,我在github repo中使用 git push 之后,我从另一台计算机上克隆了它。克隆之后,我做到了 pip3 freeze 但在列出的包中,我没有看到我在项目中使用的一些包。这里是我的问题,我应该手动安装我在项目中使用的所有软件包,或者这里是一个最佳实践您应该在git repo中保留引用列表,但是这些引用的实际文件(二进制文件)不应该是repo的一部分,并且应该在下载源代码后下载/安装软件包 换句话说。

也许这个问题被问了很多次,但我什么也没发现。我有一个包含许多python包的项目,我在github repo中使用

git push
之后,我从另一台计算机上克隆了它。克隆之后,我做到了

pip3 freeze 

但在列出的包中,我没有看到我在项目中使用的一些包。这里是我的问题,我应该手动安装我在项目中使用的所有软件包,或者这里是一个最佳实践

您应该在git repo中保留引用列表,但是这些引用的实际文件(二进制文件)不应该是repo的一部分,并且应该在下载源代码后下载/安装软件包

换句话说。您的源代码应该包含配置文件,例如,运行解决方案需要版本>=3.4.5的程序包X,但repo不应该包含Xv.3.4.5的二进制文件

您的
.gitignore
应该防止实际的二进制文件成为repo的一部分


话虽如此,有些情况下应该包含二进制文件,但这些都是边缘情况,通常应该避免

这里的关键概念是,根据git最佳实践原则,您不想版本控制repo中pip模块的内容(与您不想跟踪二进制文件的方式相同),但提供所需模块和正确版本的描述或清单

说到纯python,跟踪python代码需要运行的软件包版本的最简单方法是将它们保存在一个名为requirements.txt的文件中,您可以运行下一个命令:

pip freeze > requirements.txt

pip install -r requirements.txt
将requirements.txt文件添加到git存储库后,克隆该文件的任何人都知道运行cod所需的模块版本,他们可以通过运行下一个命令来安装依赖项:

pip freeze > requirements.txt

pip install -r requirements.txt

值得一提的是,在这一点上,强烈建议您使用许多策略中的任何一种来处理python环境,如virtualenvpyenvpipenv,这样您就可以在每个环境而不是全局范围内隔离包和模块依赖关系。

谢谢。如何处理依赖项列表?皮普冻结?