Gra*_*row 11 python pip virtualenv easy-install python-2.7
还有许多类似于此问题的其他StackOverflow问题,但在每种情况下,平台都不同或错误消息不同或解决方案没有效果或过时.我正在尝试设置Python 2.7.6 virtualenv并在其中安装模块,但easy_install给出了错误,指示setuptools不可用.但是AFAIK easy_install是setuptools的一部分,所以这没有任何意义.
问题只发生在virtualenv中.这就是我所做的:
yum -y update最新的东西,重新启动./configure; make; sudo make installpython -V给了我2.7.6并sudo python -V给了我2.7.6wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py--no-check-certificate标志添加到wget以解决我们网络中的代理服务器问题sudo python ez_setup.pysudo easy_install pipsudo pip install virtualenvvirtualenv virtpy. virtpy/bin/activateeasy_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
Run Code Online (Sandbox Code Playgroud)
我从一个干净的VM开始,我没有做任何不寻常的事情,但我发现"easy_install"除了.我做错了什么或者我错过了一个或多个步骤?
我不知道为什么会出现错误,但我相信有一种系统方法可以让您干净地安装自定义 Python,包括工作 pip 和 virtualenv。下面,我将描述我将使用的过程。
首先,出于多种原因,请保持系统的 Python 不变。其中之一是 Linux 发行版的某些部分可能取决于其默认 Python 的具体情况。你不想破坏这些部件。另一个原因是安装到默认位置的普通 Python 可能会被原始 Python 的残留物混淆(发行版可能具有与普通版本不同的特定 Python/dist-packages/site-packages 目录布局)。这在实践中可能是也可能不是真正的问题——从概念上讲,您可以通过不覆盖系统的 Python 来防止这些问题。另一个论点是不需要以 root 身份安装 Python 2.7.6。以非特权用户(从这里开始称为“joe”)安装它并将其放入/opt或其他东西中。这将是一个干净的开始。
设置自定义 Python 后,为自己创建一个小 shell 脚本,例如setup.sh设置使用自定义 Python 版本的环境。确保调整和清理环境。显然,这尤其影响PATH和PYTHONPATH。我会确保它PYTHONPATH未设置并且PATH正确指向自定义安装。查看env并尝试确定是否还有任何可能python以意外方式配置的内容。毕竟,请确保
$ command -v python
$ python -v
Run Code Online (Sandbox Code Playgroud)
,以乔的身份处决,看对了。
仍然是 joe,在适当的环境下,安装pip自定义 Python。根据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
Run Code Online (Sandbox Code Playgroud)
此时,您应该确保您的环境不包含任何VIRTUALENV_*变量(可能已由您的发行版或任何组件设置(不太可能,但值得检查))。如果VIRTUALENV_*设置了任何变量,它很可能virtualenv会以意外的方式进行配置。摆脱它(取消设置或更改)。然后继续使用新的, via安装virtualenv到新的 Python 中。通过安装最新开发版本的 virtualenv 也可能值得尝试。pippip install virtualenvpip install https://github.com/pypa/virtualenv/tarball/develop
创建并激活新的虚拟环境。使用command -v pip,验证它pip来自虚拟环境。然后安装您的自定义软件包。
注意:如果可能的话,我肯定会使用将pip东西安装到新的虚拟环境,而不是easy_install。pip很快就会成为官方安装工具(它将包含在 Python 3.4 中)。如果由于某种原因您确实依赖于easy_install,这应该是可能的(该easy_install命令由虚拟环境提供),但为了确保您还应该通过 来验证这一点command -v easy_install。
| 归档时间: |
|
| 查看次数: |
6992 次 |
| 最近记录: |