- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
还有许多其他 StackOverflow 问题与此问题类似,但在每种情况下,平台不同或错误消息不同或解决方案无效或已过时。我正在尝试设置 Python 2.7.6 virtualenv 并将模块安装到其中,但是 easy_install 给我错误提示 setuptools 不可用。但是 AFAIK easy_install 是 setuptools 的一部分,所以这是没有意义的。
问题只发生在虚拟环境中。这是我所做的:
yum -y update
以获取最新内容,重新启动./configure;制作; sudo make install
python -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.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 版本的环境。务必调整和清理环境。显然,这尤其会影响 PATH
和 PYTHONPATH
。我会确保未设置 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 virtualenv
将 virtualenv
安装到你的新 Python 中。通过 pip install https://github.com/pypa/virtualenv/tarball/develop
安装最新开发版本的 virtualenv 也值得一试。
创建并激活一个新的虚拟环境。使用 command -v pip
,验证 pip
来自虚拟环境。然后安装您的自定义包。
注意:如果可能的话,我肯定会使用 pip
将东西安装到新的虚拟环境,而不是 easy_install
。 pip
将很快成为官方安装程序工具(它将包含在 Python 3.4 中)。如果出于某种原因你真的依赖于easy_install
,这应该是可能的(easy_install
命令由虚拟环境提供),但只是为了请确保您还应该通过 command -v easy_install
验证这一 pip 。
关于virtualenv 中的 Python easy_install 给出了 setuptools 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21732703/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!