这是我的GitHub回购https://github.com/imsaiful/backmyitem
我从本地计算机上推送并在Amazon EC2中进行更改。之前我没有在我的仓库中添加虚拟环境文件,但现在我已经更改了包含在虚拟环境中的管理目录中的一些文件。那么我是否应该在我的GitHub上添加虚拟环境,或者我手动在远程服务器上更改相同的东西?
不 - 虽然那里的环境是100%,但是如果其他人在路径环境中将其拉下来还没有出口,更不用说Python版本的差异可能会突然出现。
最好的办法是创建一个所谓的requirements.txt
文件。
当你创建了你的环境,你可以pip install this
和pip install that
。您将开始构建许多项目特定的依赖项。
一旦你开始构建了许多项目依赖项,我就会冻结你的本地python环境(类似于package.json,用于node.js包依赖管理)。我建议您在终端中执行以下操作:
(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! :)
正如在评论中提到的那样,通过requirements.txt
文件执行此操作是标准的,而不是包括virtualenv本身。
您可以使用以下命令轻松生成此文件:pip freeze > requirements.txt
然后,您可以使用以下命令在目标计算机上安装virtualenv软件包:pip install -r requirements.txt
值得注意的是,包含virtualenv通常根本不起作用,因为它可能包含本地系统的完整路径。使用requirements.txt
文件要好得多。
你应该在你的gitignore中添加virtualenv。 Infact github有一个推荐的python格式,应该添加哪些文件,哪些文件不应该添加
没有必要在github上上传virtualenv文件。甚至有些时候你把你的代码推送到github然后它只在添加到忽略时忽略python文件。
虚拟环境基本上虚拟环境只不过是一种工具,通过为它们创建隔离的python虚拟环境,有助于将不同项目所需的依赖关系分开。这是大多数Python开发人员使用的最重要的工具之一。除此之外,您还可以将requirement.txt文件添加到项目中。
Requirement.txt它是告诉我们运行此应用程序需要哪个库和应用程序的文件。你可以用这个简单的命令添加requirement.txt文件。
pip freeze > requirements.txt
运行此命令后,所有应用程序和库都会添加到此文件中。如果你的项目没有激活任何virtualenv那么python会自动使用系统环境变量,它也会添加你项目不需要的所有文件。