如何获得合适的pip版本

2024-10-01 09:42:21 发布

您现在位置:Python中文网/ 问答频道 /正文

问题

我似乎无法将我的包安装到正确的站点包目录。在

背景

我想升级到python3.3,但是我发现我仍然需要python2.6才能使用yum(它没有为python3配置)。所以我的系统里都有。在

为每个版本单独安装pip和简易安装???

问题是当我下载一个包并运行“python”时设置.pyinstall“我发现它安装在python2.6中。我试过使用pip和easy-tu安装,但它们都是一样的。我读到过一个解决方案是使用不同版本的pip(pip_2.6和pip_3.3)。但是我找不到一种方法来下载单独的版本。一种解决方法是在pip中使用“-d PathToSitePackages”参数,但这并不优雅。在

其他未使用更新版本的程序

另一个问题是,我发现当我使用sphinx之类的系统时,它们使用的是旧版本的python。我似乎不知道如何让他们使用较新版本的python。在


Tags: pip方法版本目录参数站点系统easy
1条回答
网友
1楼 · 发布于 2024-10-01 09:42:21

首先,Python被显式地设计为在X中同时拥有pythonx.Y和pythonv.W!=V.PEP 394解释了细节,但基本上,python3总是意味着3.x版本,如果python也意味着3.x版本,python2将意味着2.x版本。对于所有行为良好的紧密集成脚本,如pipipython,也应如此。在

这是一件好事,因为许多POSIX平台(大多数linux发行版、OS X等)都包含依赖于Python某个特定版本的代码,因此您必须能够拥有该版本,但通常您需要为自己的代码提供更新的版本。在

在大多数平台上,即使X==V,只要Y!=W,因为默认安装也会为您提供pythonX.Y,并对其进行设置,因此行为良好的脚本也会执行相同的操作。这一部分并不是由PEP授权的,所以一些linux发行版不会这样做,或者以不同的方式来做。但幸运的是,你只需要2.6和3.3,所以你不必担心这部分。在


因此,如果您使用pythonx.Y以任何正常方式安装pip,那么您将在pythonx.Y的站点包中获得一些新的包,可能是一个名为pip-X.Y(注意它是连字符,而不是下划线)的脚本,并且通常是该脚本的符号链接pip和/或{}。所以,你不需要做任何事情来得到这个。在

尤其是测试这个序列(系统范围内安装的documentation推荐的方式):

$ curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
$ sudo python3.3 ez_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python3.3 get-pip.py

……我就这样结束了。在

如果您没有,您将不得不向我们提供关于您的平台的详细信息,您如何安装每个Python(大概2.6是系统安装的一部分,但不是3.3),以及如何安装每个pip。在


如果您改为使用sudo yum install python-pipsudo yum install python33-pip(或python3-pip),那么您得到的将完全取决于发行版,因此您可能最终只得到pip(对于2.6)和{}(对于3.3),而不是pip-2.6和{}和符号链接{}和{}。查看various distros' packages的RPM内容,看起来像是红帽系统的标准名称是python3-pip,带有{}的符号链接,有时还有其他名称。在


总之,除非你混合和匹配不同的方法,否则你几乎肯定会得到一些方法来区分这两个版本。在


如果最坏的情况是最坏的,并且您只得到了一个名为pip的脚本,并且无论您最后安装的是哪个脚本,您都可以始终安装第一个脚本,cp pip pip-2.6,安装第二个,然后mv pip pip-3.3; ln -s pip-2.6 pip; ln -s pip-3.3 pip3。在

或者,如果你连这都做不到的话,这个脚本就是微不足道的,比如:

^{pr2}$

你只需制作一个拷贝,s/3.3/2.6/g就可以了(如果你在不同的站点包中安装了不同版本的pip,你可能还需要替换1.2.1),它就可以工作了。在

但它真的,真的不应该变成这样。setuptools和pip都尊重pep394,任何不需要一些规则或其python3包的包管理器都是无用的。所以,如果你认为这些技巧是必要的,那么你可能之前做错了什么。在

相关问题 更多 >