我有许多使用虚拟环境的Python服务。我有时会重建这些环境,并希望节省时间。mkvirtualenv --system-site-packages似乎接近我想要的,但它仍然有我不理解的行为。
我使用的一个包是gevent(beta版本),我直接从GitHub安装:sudo pip install -e git://github.com/surfly/gevent.git@1.0b4#egg=gevent。这是在虚拟环境外完成的,因此它进入系统的site-packages。这很好用,如果我创建一个新的--system-site-packages虚拟环境,它似乎存在,但具有不同的rev和egg指定。
至少看起来已经安装了。但是,当我运行
理想情况下,我希望 pip 能够注意到我正在请求的 gevent 版本已经存在,并且不尝试再次安装它。有没有办法实现我的目标?
我使用的一个包是gevent(beta版本),我直接从GitHub安装:sudo pip install -e git://github.com/surfly/gevent.git@1.0b4#egg=gevent。这是在虚拟环境外完成的,因此它进入系统的site-packages。这很好用,如果我创建一个新的--system-site-packages虚拟环境,它似乎存在,但具有不同的rev和egg指定。
[msherry@hostname:~]$ mkvirtualenv test --system-site-packages
New python executable in test/bin/python2.7
Also creating executable in test/bin/python
Installing setuptools............done.
Installing pip...............done.
[msherry@hostname:~]$ workon test
[msherry@hostname:~]$ pip freeze|grep gevent
-e git://github.com/surfly/gevent.git@15418fc8ff4460069cf42b4b0341969c54455ddd#egg=gevent-dev
至少看起来已经安装了。但是,当我运行
pip install -e git://github.com/surfly/gevent.git@1.0b4#egg=gevent
时,gevent 的(缓慢)安装过程重新开始了——使用 --system-site-packages
看起来我没有获得任何好处。理想情况下,我希望 pip 能够注意到我正在请求的 gevent 版本已经存在,并且不尝试再次安装它。有没有办法实现我的目标?