I am facing the same problem running OSX 10.10.2 and python 3.4.2 . Most recently, I created a virtual environment on a debian wheezy machine with python 3.4.3 , and also got an older version of pip than is available. had to update pip .
I updated pip in a virtual environment to 6.1.1 from 6.0.8 manually, because I paid for it in software library versions - and yes, I am upgrading python 3 to 3.4.3 right now. Anyway, my python3-pip is the latest version 6.1.1 , so I also wondered why pyvenv creates a new virtual environment and loads it using the old pip .
I did not notice anything bad in any virtual environment due to the pip update (but, on the other hand, I also did not notice anything). Obviously, the new pip is faster - t notifies and displays less garbage on successful installations because the user does not care - also did not notice, probably because I am one of those who do not care, and also comes with the most modern coffee machine, capable of latte art for download !!! - still waiting for completion sudo pip install latte : (
So, in order to answer your question, this is definitely possible and probably advisable to update, because, apparently, the new pip fixes some errors and goes faster, but I think that acceleration is not so important, and the correction error is not affect everything that many people (I never encountered an error using the old pip ).
You can refer to system package sites using flag -system-site packages when creating a new virtual environment, for example
pyvenv myenv --system-site-packages
This will link to your pip system version and eliminate the annoyance that manually updates pip in each virtual environment, but if you do, will your virtual environment be virtual?
update: after my rant above, I went to the venv package venv to dig. pip configured by the _setup_pip method in the __init__.py file, line 248
def _setup_pip(self, context): """Installs or upgrades pip in a virtual environment"""
So venv seems to invoke ensurepip from the shell using the subprocess module.
Another google-fu minute gave me this from the documentation for provision .
ensurepip.version ()
Returns a string indicating the nested version of the pip that will be installed when the environment boots.
So, from the command line, the following code:
$ python3 -c 'import ensurepip; print(ensurepip.version())' 6.0.8
displays the current current pip to be loaded using ensurepip .
I think we are stuck with the old version of pip for each new installation until ensurepip is updated, since I cannot find a way to upgrade the version of pip that comes with ensurepip