2014-12-13 91 views
1

我刚刚开始学习Django,并且在项目的“复制”方面我遇到了一些问题。 我有两台电脑,我想用这两台电脑来开发。当我学习PHP时(当时我甚至不知道如何使用Github),我只需在两台计算机上设置一个网络服务器,然后通过Google Drive(从一台计算机)上传整个文件,然后下载它从另一台电脑。上传在Github上虚拟环境中设置的Django项目

但是,在我看来,Django有点不同,因为它是一个框架,并且在开始一个项目之前有很多设置(包括虚拟环境;我遵循Youtube教程,它说我会更好如果我使用virtualenv)。我认为它不会通过下载整个项目文件夹到另一台计算机。

目前,我已经上传了Github上的整个虚拟环境文件夹。

所以,要列出我的问题,

  1. 在下载它的另一台计算机上,我应该安装该计算机上的虚拟环境,然后下载文件夹吗?...
  2. 有什么办法我只能同步或提交已在项目中自动更改的文件? (也就是说,我必须更改Django项目(视图,网址,设置...等)中的许多文件,但它很难记住我已更改的所有文件,然后单独提交这些文件)

任何帮助,将不胜感激。

回答

1

我建议你也安装virtualenvwrapper(here)。 virtualenvwrapper将除您的项目之外的所有文件保存在另一个位置,以便您的项目目录仅包含您的文件,并且您可以安全地使用git add --all

它的安装后,执行:

$ mkdir my-project; cd my-project 
$ mkvirtualenv my-env-name 
$ pip install django <more-good-stuff> 
$ pip freeze > requirements.txt 
$ git init; git add --all; git commit -m "Initial Commit" 
... push to github ... 

现在去其他机器,并安装virtualenvvirtualenvwrapper

$ git clone <url> my-project; cd my-project 
$ mkvirtualenv my-env-name 
$ pip install -r requirements.txt 
... continue your work, commit and push push and win at life :D 
+0

谢谢!但由于我是一个Windows用户,使用virtualenvwrapper有点难。无论如何,我不知道什么requirements.txt是我google搜索它。但我还有一个问题。即使我已经开始我的项目,是否可以制作requirements.txt文件?我的意思是我已经设置了一个项目并进行了处理,但根据您的回答,似乎我必须在安装后立即执行pip freeze requirements.txt。如果可以的话,你能告诉我如何? – 2014-12-15 11:16:42

+0

没关系,你仍然可以做'pip freeze> requirements.txt'。如果两个comp的包都是相同的,那么你可以跳过'pip install -r requirements.txt'步骤。当有人第一次设置env时,该文件很有用。所以,是的,只要你安装了一些新的软件包,就可以创建该文件和udpate。 – Sourabh 2014-12-15 14:05:07

+0

谢谢。我能再问一个问题吗?我只使用github for Windows,并且从来没有通过命令行使用过git。我第一次尝试使用我的git shell,并遵循你的指示(以及来自github指南的一些帮助)。它工作正常,直到add -all;但是当我试图提交它时,什么也没有发生,也没有出现。我厌倦了等待,只是按下输入;那么我可以编写其他命令(对我来说,好像,'过程结束了,所以我现在可以运行其他命令..但我认为没有任何事情')是因为有太多的文件要提交?你能简单解释一下吗? – 2014-12-16 03:00:32

0

你平时不希望盲目承诺的一切。如果您使用git status来查看您更改的所有文件,然后使用git add,则更好。一旦您确认您确实要提交所有文件,您只需要git add --all(更多here)。然后你git commit

而且,是的,virtualenv是要走的路。你想为你的项目创建一个virtualenv,并在requirements.txt文件中拥有你所有的依赖项。这将允许只有你的源代码和git仓库中没有库,使它更清洁。这也可以让你在生产环境中拥有一组经过验证的库,如果你想尝试一个新的库,你可以将它安装在你的本地虚拟环境中。或者甚至有两个virtualenvs和开关,或者其他什么,它不会混淆你的代码回购或其他机器的安装。

相关问题