{"action":"created","comment":{"url":"https://api.github.com/repos/django/django/pulls/comments/32251083","id":32251083,"diff_hunk":"@@ -103,26 +113,84 @@ Download the Django source code repository using the following command:\n \n     $ git clone https://github.com/django/django.git\n \n+Now that you have a local copy of Django, you can install it just like you would\n+install any package using ``pip``. The most convenient way to do so is by using\n+a *virtual environment* (or virtualenv) which is a feature built into Python\n+that allows you to keep a separate directory of installed packages for each of\n+your projects so that these don't interfere with each other.\n+\n+It's a good idea to keep all your virtualenvs in one place, for example in\n+``.virtualenvs/`` in your home directory. Create it if it doesn't exist yet:\n+\n+.. code-block:: console\n+\n+    $ mkdir ~/.virtualenvs\n+\n+Now create a new virtualenv by running:\n+\n+.. code-block:: console\n+\n+    $ python3 -m venv ~/.virtualenvs/djangodev\n+\n+The path is where the new environment will be saved on your computer.\n+\n+If you are on Windows, the commands might look something like:\n+\n+.. code-block:: none\n+\n+    > mkdir C:\\Users\\Name\\virtualenvs\n+    > C:\\Python34\\python -m venv C:\\Users\\Name\\virtualenvs\\djangodev\n+\n+Where ``Python34`` is the location of your Python installation, and ``Name`` is\n+your username.\n+\n .. note::\n \n-    For users who wish to use `virtualenv`__, you can use:\n+    On some older versions of Python 3 the above command might fail. In that\n+    case you can create the virtualenv through a Python package instead:\n \n     .. code-block:: console\n \n-        $ pip install -e /path/to/your/local/clone/django/\n+        $ pip3 install virtualenv\n+        $ virtualenv --python=`which python3` ~/.virtualenvs/djangodev\n \n-    (where ``django`` is the directory of your clone that contains\n-    ``setup.py``) to link your cloned checkout into a virtual environment. This\n-    is a great option to isolate your development copy of Django from the rest\n-    of your system and avoids potential package conflicts.\n+The final step in setting up your virtualenv is to activate it:\n \n-__ http://www.virtualenv.org\n+.. code-block:: console\n+\n+    $ source ~/.virtualenvs/djangodev/bin/activate\n+\n+If the ``source`` command is not available, you can try using a dot instead:\n+\n+.. code-block:: console\n+\n+    $ . ~/.virtualenvs/djangodev/bin/activate\n+\n+On Windows, just run the ``activate`` script:\n+\n+.. code-block:: none\n+\n+    > C:\\Users\\Name\\virtualenvs\\djangodev\\Scripts\\activate\n+\n+Anything you install through ``pip`` from now on will be installed in your new","path":"docs/intro/contributing.txt","position":98,"original_position":98,"commit_id":"55a2def4e721b13090e0721f2a08f97686fa65a4","original_commit_id":"55a2def4e721b13090e0721f2a08f97686fa65a4","user":{"login":"timgraham","id":411869,"avatar_url":"https://avatars.githubusercontent.com/u/411869?v=3","gravatar_id":"","url":"https://api.github.com/users/timgraham","html_url":"https://github.com/timgraham","followers_url":"https://api.github.com/users/timgraham/followers","following_url":"https://api.github.com/users/timgraham/following{/other_user}","gists_url":"https://api.github.com/users/timgraham/gists{/gist_id}","starred_url":"https://api.github.com/users/timgraham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timgraham/subscriptions","organizations_url":"https://api.github.com/users/timgraham/orgs","repos_url":"https://api.github.com/users/timgraham/repos","events_url":"https://api.github.com/users/timgraham/events{/privacy}","received_events_url":"https://api.github.com/users/timgraham/received_events","type":"User","site_admin":false},"body":"Might be helpful to mention that you need to active the virtualenv each time you open a new shell.","created_at":"2015-06-11T18:16:34Z","updated_at":"2015-06-11T18:16:34Z","html_url":"https://github.com/django/django/pull/4835#discussion_r32251083","pull_request_url":"https://api.github.com/repos/django/django/pulls/4835","_links":{"self":{"href":"https://api.github.com/repos/django/django/pulls/comments/32251083"},"html":{"href":"https://github.com/django/django/pull/4835#discussion_r32251083"},"pull_request":{"href":"https://api.github.com/repos/django/django/pulls/4835"}}},"pull_request":{"url":"https://api.github.com/repos/django/django/pulls/4835","id":37200382,"html_url":"https://github.com/django/django/pull/4835","diff_url":"https://github.com/django/django/pull/4835.diff","patch_url":"https://github.com/django/django/pull/4835.patch","issue_url":"https://api.github.com/repos/django/django/issues/4835","number":4835,"state":"open","locked":false,"title":"Fixed #24943 -- Update contributing tutorial to use virtualenv","user":{"login":"alimony","id":331091,"avatar_url":"https://avatars.githubusercontent.com/u/331091?v=3","gravatar_id":"","url":"https://api.github.com/users/alimony","html_url":"https://github.com/alimony","followers_url":"https://api.github.com/users/alimony/followers","following_url":"https://api.github.com/users/alimony/following{/other_user}","gists_url":"https://api.github.com/users/alimony/gists{/gist_id}","starred_url":"https://api.github.com/users/alimony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alimony/subscriptions","organizations_url":"https://api.github.com/users/alimony/orgs","repos_url":"https://api.github.com/users/alimony/repos","events_url":"https://api.github.com/users/alimony/events{/privacy}","received_events_url":"https://api.github.com/users/alimony/received_events","type":"User","site_admin":false},"body":"See ticket: https://code.djangoproject.com/ticket/24943","created_at":"2015-06-08T21:57:07Z","updated_at":"2015-06-11T18:16:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dd1b0a8dfff2fb6a09dda3942bfb3ca7001c1355","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/django/django/pulls/4835/commits","review_comments_url":"https://api.github.com/repos/django/django/pulls/4835/comments","review_comment_url":"https://api.github.com/repos/django/django/pulls/comments{/number}","comments_url":"https://api.github.com/repos/django/django/issues/4835/comments","statuses_url":"https://api.github.com/repos/django/django/statuses/55a2def4e721b13090e0721f2a08f97686fa65a4","head":{"label":"alimony:contribute-tutorial-virtualenv","ref":"contribute-tutorial-virtualenv","sha":"55a2def4e721b13090e0721f2a08f97686fa65a4","user":{"login":"alimony","id":331091,"avatar_url":"https://avatars.githubusercontent.com/u/331091?v=3","gravatar_id":"","url":"https://api.github.com/users/alimony","html_url":"https://github.com/alimony","followers_url":"https://api.github.com/users/alimony/followers","following_url":"https://api.github.com/users/alimony/following{/other_user}","gists_url":"https://api.github.com/users/alimony/gists{/gist_id}","starred_url":"https://api.github.com/users/alimony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alimony/subscriptions","organizations_url":"https://api.github.com/users/alimony/orgs","repos_url":"https://api.github.com/users/alimony/repos","events_url":"https://api.github.com/users/alimony/events{/privacy}","received_events_url":"https://api.github.com/users/alimony/received_events","type":"User","site_admin":false},"repo":{"id":36766524,"name":"django","full_name":"alimony/django","owner":{"login":"alimony","id":331091,"avatar_url":"https://avatars.githubusercontent.com/u/331091?v=3","gravatar_id":"","url":"https://api.github.com/users/alimony","html_url":"https://github.com/alimony","followers_url":"https://api.github.com/users/alimony/followers","following_url":"https://api.github.com/users/alimony/following{/other_user}","gists_url":"https://api.github.com/users/alimony/gists{/gist_id}","starred_url":"https://api.github.com/users/alimony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alimony/subscriptions","organizations_url":"https://api.github.com/users/alimony/orgs","repos_url":"https://api.github.com/users/alimony/repos","events_url":"https://api.github.com/users/alimony/events{/privacy}","received_events_url":"https://api.github.com/users/alimony/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/alimony/django","description":"The Web framework for perfectionists with deadlines.","fork":true,"url":"https://api.github.com/repos/alimony/django","forks_url":"https://api.github.com/repos/alimony/django/forks","keys_url":"https://api.github.com/repos/alimony/django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alimony/django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alimony/django/teams","hooks_url":"https://api.github.com/repos/alimony/django/hooks","issue_events_url":"https://api.github.com/repos/alimony/django/issues/events{/number}","events_url":"https://api.github.com/repos/alimony/django/events","assignees_url":"https://api.github.com/repos/alimony/django/assignees{/user}","branches_url":"https://api.github.com/repos/alimony/django/branches{/branch}","tags_url":"https://api.github.com/repos/alimony/django/tags","blobs_url":"https://api.github.com/repos/alimony/django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alimony/django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alimony/django/git/refs{/sha}","trees_url":"https://api.github.com/repos/alimony/django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alimony/django/statuses/{sha}","languages_url":"https://api.github.com/repos/alimony/django/languages","stargazers_url":"https://api.github.com/repos/alimony/django/stargazers","contributors_url":"https://api.github.com/repos/alimony/django/contributors","subscribers_url":"https://api.github.com/repos/alimony/django/subscribers","subscription_url":"https://api.github.com/repos/alimony/django/subscription","commits_url":"https://api.github.com/repos/alimony/django/commits{/sha}","git_commits_url":"https://api.github.com/repos/alimony/django/git/commits{/sha}","comments_url":"https://api.github.com/repos/alimony/django/comments{/number}","issue_comment_url":"https://api.github.com/repos/alimony/django/issues/comments{/number}","contents_url":"https://api.github.com/repos/alimony/django/contents/{+path}","compare_url":"https://api.github.com/repos/alimony/django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alimony/django/merges","archive_url":"https://api.github.com/repos/alimony/django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alimony/django/downloads","issues_url":"https://api.github.com/repos/alimony/django/issues{/number}","pulls_url":"https://api.github.com/repos/alimony/django/pulls{/number}","milestones_url":"https://api.github.com/repos/alimony/django/milestones{/number}","notifications_url":"https://api.github.com/repos/alimony/django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alimony/django/labels{/name}","releases_url":"https://api.github.com/repos/alimony/django/releases{/id}","created_at":"2015-06-02T22:52:47Z","updated_at":"2015-06-02T22:53:01Z","pushed_at":"2015-06-10T08:25:43Z","git_url":"git://github.com/alimony/django.git","ssh_url":"git@github.com:alimony/django.git","clone_url":"https://github.com/alimony/django.git","svn_url":"https://github.com/alimony/django","homepage":"https://www.djangoproject.com/","size":140905,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"django:master","ref":"master","sha":"a0047c6242fd48068eb444e0a58f7a5d2bc1bcd3","user":{"login":"django","id":27804,"avatar_url":"https://avatars.githubusercontent.com/u/27804?v=3","gravatar_id":"","url":"https://api.github.com/users/django","html_url":"https://github.com/django","followers_url":"https://api.github.com/users/django/followers","following_url":"https://api.github.com/users/django/following{/other_user}","gists_url":"https://api.github.com/users/django/gists{/gist_id}","starred_url":"https://api.github.com/users/django/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/django/subscriptions","organizations_url":"https://api.github.com/users/django/orgs","repos_url":"https://api.github.com/users/django/repos","events_url":"https://api.github.com/users/django/events{/privacy}","received_events_url":"https://api.github.com/users/django/received_events","type":"Organization","site_admin":false},"repo":{"id":4164482,"name":"django","full_name":"django/django","owner":{"login":"django","id":27804,"avatar_url":"https://avatars.githubusercontent.com/u/27804?v=3","gravatar_id":"","url":"https://api.github.com/users/django","html_url":"https://github.com/django","followers_url":"https://api.github.com/users/django/followers","following_url":"https://api.github.com/users/django/following{/other_user}","gists_url":"https://api.github.com/users/django/gists{/gist_id}","starred_url":"https://api.github.com/users/django/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/django/subscriptions","organizations_url":"https://api.github.com/users/django/orgs","repos_url":"https://api.github.com/users/django/repos","events_url":"https://api.github.com/users/django/events{/privacy}","received_events_url":"https://api.github.com/users/django/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/django/django","description":"The Web framework for perfectionists with deadlines.","fork":false,"url":"https://api.github.com/repos/django/django","forks_url":"https://api.github.com/repos/django/django/forks","keys_url":"https://api.github.com/repos/django/django/keys{/key_id}","collaborators_url":"https://api.github.com/repos/django/django/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/django/django/teams","hooks_url":"https://api.github.com/repos/django/django/hooks","issue_events_url":"https://api.github.com/repos/django/django/issues/events{/number}","events_url":"https://api.github.com/repos/django/django/events","assignees_url":"https://api.github.com/repos/django/django/assignees{/user}","branches_url":"https://api.github.com/repos/django/django/branches{/branch}","tags_url":"https://api.github.com/repos/django/django/tags","blobs_url":"https://api.github.com/repos/django/django/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/django/django/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/django/django/git/refs{/sha}","trees_url":"https://api.github.com/repos/django/django/git/trees{/sha}","statuses_url":"https://api.github.com/repos/django/django/statuses/{sha}","languages_url":"https://api.github.com/repos/django/django/languages","stargazers_url":"https://api.github.com/repos/django/django/stargazers","contributors_url":"https://api.github.com/repos/django/django/contributors","subscribers_url":"https://api.github.com/repos/django/django/subscribers","subscription_url":"https://api.github.com/repos/django/django/subscription","commits_url":"https://api.github.com/repos/django/django/commits{/sha}","git_commits_url":"https://api.github.com/repos/django/django/git/commits{/sha}","comments_url":"https://api.github.com/repos/django/django/comments{/number}","issue_comment_url":"https://api.github.com/repos/django/django/issues/comments{/number}","contents_url":"https://api.github.com/repos/django/django/contents/{+path}","compare_url":"https://api.github.com/repos/django/django/compare/{base}...{head}","merges_url":"https://api.github.com/repos/django/django/merges","archive_url":"https://api.github.com/repos/django/django/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/django/django/downloads","issues_url":"https://api.github.com/repos/django/django/issues{/number}","pulls_url":"https://api.github.com/repos/django/django/pulls{/number}","milestones_url":"https://api.github.com/repos/django/django/milestones{/number}","notifications_url":"https://api.github.com/repos/django/django/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/django/django/labels{/name}","releases_url":"https://api.github.com/repos/django/django/releases{/id}","created_at":"2012-04-28T02:47:18Z","updated_at":"2015-06-11T16:26:35Z","pushed_at":"2015-06-11T17:51:40Z","git_url":"git://github.com/django/django.git","ssh_url":"git@github.com:django/django.git","clone_url":"https://github.com/django/django.git","svn_url":"https://github.com/django/django","homepage":"https://www.djangoproject.com/","size":293349,"stargazers_count":14596,"watchers_count":14596,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5831,"mirror_url":null,"open_issues_count":91,"forks":5831,"open_issues":91,"watchers":14596,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/django/django/pulls/4835"},"html":{"href":"https://github.com/django/django/pull/4835"},"issue":{"href":"https://api.github.com/repos/django/django/issues/4835"},"comments":{"href":"https://api.github.com/repos/django/django/issues/4835/comments"},"review_comments":{"href":"https://api.github.com/repos/django/django/pulls/4835/comments"},"review_comment":{"href":"https://api.github.com/repos/django/django/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/django/django/pulls/4835/commits"},"statuses":{"href":"https://api.github.com/repos/django/django/statuses/55a2def4e721b13090e0721f2a08f97686fa65a4"}}}}