这是我的GitHub存储库 https://github.com/imsaiful/backmyitem
我从本地计算机推送并提取Amazon EC2中的更改。 之前我没有在仓库中添加虚拟环境文件,但是现在我更改了虚拟环境中包含的管理目录中的某些文件。因此,我是否也应该在GitHub上添加虚拟环境,还是手动在远程服务器上更改相同的内容?
答案 0 :(得分:3)
否-尽管这里的环境已经100%存在,但是如果尚未导出将环境拖到其他位置的其他人,更不用说Python版本的差异了。
最好的办法是创建一个requirements.txt
文件。
创建环境后,可以pip install this
和pip 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格式,应该添加哪些文件,不应该添加
答案 3 :(得分:0)
否不需要在github上上传virtualenv文件。甚至有一段时间,当您将代码推送到github时,只有添加到ignore中,它才会忽略python文件。
虚拟环境 基本上,虚拟环境不过是一种工具,可通过为它们创建隔离的python虚拟环境来帮助将不同项目所需的依赖项分开。这是大多数Python开发人员使用的最重要的工具之一。除此之外,您还可以将require.txt文件添加到您的项目中。
Requirement.txt 该文件告诉我们运行该应用程序需要哪个库和应用程序。您可以使用此简单命令添加require.txt文件。
pip freeze > requirements.txt
运行此命令后,所有应用程序和库都添加到此文件中。如果您在不激活任何virtualenv的情况下创建项目,则python会自动使用系统环境变量,它还会添加项目不需要的所有文件。