gpt4 book ai didi

virtualenv 中的 Python easy_install 给出了 setuptools 错误

转载 作者:太空狗 更新时间:2023-10-29 18:08:15 25 4
gpt4 key购买 nike

还有许多其他 StackOverflow 问题与此问题类似,但在每种情况下,平台不同或错误消息不同或解决方案无效或已过时。我正在尝试设置 Python 2.7.6 virtualenv 并将模块安装到其中,但是 easy_install 给我错误提示 setuptools 不可用。但是 AFAIK easy_install 是 setuptools 的一部分,所以这是没有意义的。

问题只发生在虚拟环境中。这是我所做的:

  • 创建了一个全新的 Red Hat 5 虚拟机
  • 执行 yum -y update 以获取最新内容,重新启动
  • 下载 Python-2.7.6.tar.gz,解压,./configure;制作; sudo make install
  • 确认 python -V 给我 2.7.6 并且 sudo python -V 也给我 2.7.6
  • wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
  • 修改 ez_setup.py 以将 --no-check-certificate 标志添加到 wget 以解决我们网络中的代理服务器问题
  • sudo python ez_setup.py
  • sudo easy_install pip
  • sudo pip install virtualenv
  • virtualenv virtpy
  • 。 virtpy/bin/激活
  • easy_install elementtree

所有这些步骤都成功了,除了最后一个,它失败了:

Traceback (most recent call last):
File "/home/gperrow/virtpy/bin/easy_install", line 7, in <module>
from setuptools.command.easy_install import main
File "/home/gperrow/virtpy/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 44, in <module>
from setuptools.package_index import PackageIndex
File "/home/gperrow/virtpy/lib/python2.7/site-packages/setuptools/package_index.py", line 203, in <module>
sys.version[:3], require('setuptools')[0].version
File "/usr/local/bin/scripts/pkg_resources.py", line 584, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/bin/scripts/pkg_resources.py", line 482, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: setuptools

我从一个干净的 VM 开始,我没有做任何不寻常的事情,但我发现“easy_install”什么都没有。我是不是做错了什么,还是错过了一个或多个步骤?

最佳答案

我不知道为什么你会出错,但我相信有一种系统的方法可以让你干净地安装你的自定义 Python,包括一个工作 pip 和 virtualenv。在下文中,我将描述我将使用的过程。

首先,出于多种原因,请保持系统的 Python 不变。其中之一是您的 Linux 发行版的某些部分可能取决于其默认 Python 的细节。你不想破坏这些部分。另一个原因是安装到默认位置的 vanilla Python 可能会被原始 Python 的残余混淆(发行版可能具有与 vanilla 不同的特定 Python/dist-packages/site-packages 目录布局)。这在实践中可能是也可能不是真正的问题——您可以通过覆盖系统的 Python 从概念上防止这些问题。另一个论 pip 是不需要以 root 身份安装 Python 2.7.6。以非特权用户身份安装它(从这里开始称为“joe”)并将其放入 /opt 或其他内容。这将是一个干净的开始。

设置自定义 Python 后,为自己创建一个小的 shell 脚本,例如setup.sh 设置使用自定义 Python 版本的环境。务必调整和清理环境。显然,这尤其会影响 PATHPYTHONPATH。我会确保未设置 PYTHONPATH 并且 PATH 正确指向自定义安装。查看 env 并尝试确定是否还有任何可能以意想不到的方式配置 python 的内容。毕竟,确保

$ command -v python
$ python -v

,执行为joe,看对了。

仍然是 joe,在适当的环境下,为自定义 Python 安装 pip。根据http://pip.readthedocs.org/en/latest/installing.html , 下载 https://raw.github.com/pypa/pip/master/contrib/get-pip.py并执行它:python get-pip.py。验证它是否安装正确并且您的环境仍然正确:

$ command -v pip
/CUSTOM/PYTHON/bin/pip

$ pip --version
pip 1.x.x from /CUSTOM/PYTHON/lib/python2.7/site-packages

此时您应该确保您的环境不包含任何 VIRTUALENV_* 变量(这些变量可能已由您的发行版或任何组件设置(不太可能,但值得检查))。如果设置了任何 VIRTUALENV_* 变量,它很可能会以意想不到的方式配置 virtualenv。摆脱这个(取消设置或更改)。然后继续使用新的 pip 通过 pip install virtualenvvirtualenv 安装到你的新 Python 中。通过 pip install https://github.com/pypa/virtualenv/tarball/develop 安装最新开发版本的 virtualenv 也值得一试。

创建并激活一个新的虚拟环境。使用 command -v pip,验证 pip 来自虚拟环境。然后安装您的自定义包。

注意:如果可能的话,我肯定会使用 pip 将东西安装到新的虚拟环境,而不是 easy_installpip 将很快成为官方安装程序工具(它将包含在 Python 3.4 中)。如果出于某种原因你真的依赖于easy_install,这应该是可能的(easy_install命令由虚拟环境提供),但只是为了请确保您还应该通过 command -v easy_install 验证这一 pip 。

关于virtualenv 中的 Python easy_install 给出了 setuptools 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21732703/

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