gpt4 book ai didi

Python virtualenv --system-site-packages -- 意外的 pip 行为

转载 作者:行者123 更新时间:2023-11-28 19:26:02 27 4
gpt4 key购买 nike

我有许多 python 服务,每个服务都使用 virtualenvs。我有时会重建这些环境,并希望节省时间。 mkvirtualenv --system-site-packages 似乎接近我想要的,但它仍然有我不明白的行为。

我使用的一个包是 gevent(测试版),我直接从 GitHub 安装它:sudo pip install -e git://github.com/surfly/gevent.git@1.0b4#egg=gevent。这是在 virtualenv 之外完成的,因此它进入系统的 site-packages。这工作正常,如果我用 --system-site-packages 创建一个新的 virtualenv,它似乎存在,但指定了不同的 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 版本已经存在,而不是尝试再次安装它。有什么办法可以做我正在尝试的事情吗?

最佳答案

在系统范围内安装时,尝试使用稍微不同的语法。


sudo pip install git+git://github.com/surfly/gevent.git@1.0b4#egg=gevent

除了没有 -e 之外,这与您的几乎相同。并包括 <vcs>前缀到您的网址。没有这个,pip 说


AssertionError: Sorry, 'git://github.com/surfly/gevent.git' is a malformed VCS url. The format is <vcs>+<protocol>://<url>, e.g. svn+http://myrepo/svn/MyApp#egg=MyApp

我还注意到您在“可编辑”模式下通过 pip 安装软件包时所做的同样事情:我得到了提交哈希版本,就像您对 pip freeze | grep gevent 的输出所做的一样。

-e git://github.com/surfly/gevent.git@15418fc8ff4460069cf42b4b0341969c54455ddd#egg=gevent-dev

对应于that version of gevent .

关于Python virtualenv --system-site-packages -- 意外的 pip 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com