我们也需要在github上上传虚拟环境吗?

时间:2018-08-15 16:58:00

标签: python django amazon-web-services amazon-ec2

这是我的GitHub存储库 https://github.com/imsaiful/backmyitem

我从本地计算机推送并提取Amazon EC2中的更改。 之前我没有在仓库中添加虚拟环境文件,但是现在我更改了虚拟环境中包含的管理目录中的某些文件。因此,我是否也应该在GitHub上添加虚拟环境,还是手动在远程服务器上更改相同的内容?

4 个答案:

答案 0 :(得分:3)

否-尽管这里的环境已经100%存在,但是如果尚未导出将环境拖到其他位置的其他人,更不用说Python版本的差异了。

最好的办法是创建一个requirements.txt文件。

创建环境后,可以pip install thispip install that。您将开始构建许多项目特定的依赖项。

一旦您开始建立许多项目依赖项,我便会冻结您的本地python环境(用于node.js软件包依赖项管理的package.json的类似名称)。我建议在您的终端上执行以下操作:

(local_python_environment) $ pip install django && pip freeze > requirements.txt

(local_python_environment) $ pip install requests && pip freeze > requirements.txt

也就是说,每次安装新的依赖项时,将您的环境冻结到requirements.txt文件中。

一旦协作者完成您的项目,他们便可以安装新的python环境:

$ python3 -m venv local_python_environment

(*请使用Python 3而不是Python 2!)

然后激活该环境并从您包含在版本控件中的requirements.txt中进行安装:

$ source local_python_environment/bin/activate

(local_python_environment) $ pip install -r requirements.txt

排除虚拟环境可能类似于忽略node_modules! :)

答案 1 :(得分:2)

正如评论中提到的那样,通常通过requirements.txt文件而不是包括virtualenv本身来执行此操作。

您可以使用以下内容轻松生成此文件: pip freeze > requirements.txt 然后,您可以使用以下命令在目标计算机上安装virtualenv软件包: pip install -r requirements.txt

重要的是要注意,包括virtualenv通常根本无法使用,因为它可能包含本地系统的完整路径。最好使用requirements.txt文件。

答案 2 :(得分:0)

您应该在您的gitignore中添加virtualenv。实际上github有一个推荐的python格式,应该添加哪些文件,不应该添加

Github recommendation for gitignore

答案 3 :(得分:0)

否不需要在github上上传virtualenv文件。甚至有一段时间,当您将代码推送到github时,只有添加到ignore中,它才会忽略python文件。

虚拟环境 基本上,虚拟环境不过是一种工具,可通过为它们创建隔离的python虚拟环境来帮助将不同项目所需的依赖项分开。这是大多数Python开发人员使用的最重要的工具之一。除此之外,您还可以将require.txt文件添加到您的项目中。

Requirement.txt 该文件告诉我们运行该应用程序需要哪个库和应用程序。您可以使用此简单命令添加require.txt文件。

 pip freeze > requirements.txt

运行此命令后,所有应用程序和库都添加到此文件中。如果您在不激活任何virtualenv的情况下创建项目,则python会自动使用系统环境变量,它还会添加项目不需要的所有文件。