Python 的“Extras”和“site-packages”目录有什么区别?

2023-12-10

我对 OS X 上的 Python 使用“Extras”和“site-packages”中的包的方式感到困惑。特别是,我对在这些目录中看到的内容、目录中的重复包如何相互影响以及应该将安装的包放在哪里感到困惑。

I had assumed that 'Extras'1 was the location for packages that are not part of core Python, but that were nonetheless distributed with a given platform. For example, OS X, is distributed with PyObjC, twisted, and numpy, among others; and these are found in 'Extras'. I had also assumed that 'site-packages'2 is where packages that I subsequently install go, and that the directory is empty or absent on a "fresh" machine. Furthermore I'd assumed that installing a new package would leave the version in 'Extras' alone, and place any updates I do in 'site-packages', where they would "mask" those in 'Extras'. (So for example, the default installation could simply be restored by deleting 'site-packages'.)

让我困惑的是我的“Extras”目录的内容正在减少。与新安装的 OS X (10.8.2) 上的内容相比,我当前配置的“附加”缺失

altgraph
altgraph-0.9-py2.7.egg-info
dateutil
macholib
macholib-1.4.2-py2.7.egg-info
modulegraph
modulegraph-0.9.1-py2.7.egg-info
numpy #though numpy-1.6.1-py2.7.egg-info is there
pkg_resources.py  # though .pyc is there
py2app
py2app-0.6.3-py2.7.egg-info
setuptools  # though setuptools-0.6c12dev_r88846-py2.7.egg-info is there
site.py  # though .pyc and .pyo are there
xattr
xattr-0.6.2-py2.7.egg-info
zope
zope.interface-3.5.1-py2.7.egg-info

并且有两个在全新安装中未找到的附加文件

pkg_resources.py.OLD.1356069438.31
setuptools-0.6c12dev_r88846-py2.7.egg-info.OLD.1356069438.31
setuptools.OLD.1356069438.31

据我所知,这些都是我自己更新的软件包,所有版本都存在于“site-packages”中。

“Extras”目录的内容是否应该以这种方式“缩小”?更新“Extras”中的软件包是否会将其“移动”到“site-packages”,还是应该将“Extras”版本单独保留并简单地被“site-packages”中的版本“掩盖”?


1:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
2: /Library/Python/2.7/site-packages/


OSX(和Linux)似乎不喜欢在python发行版的默认安装目录中安装额外的python包。

pip 可以搜索(就像 python 本身一样)已安装的模块,如果您进行升级,将卸载旧版本并在您要求的位置安装新版本,默认为站点包。如果您仔细查看 pip 的输出,它会告诉您删除了哪些内容以及安装了哪些内容。

因此,只有当您告诉 pip 安装到 Extras 目录,或者默认为 OSX 修补 pip 时,这才有效。

删除旧版本实际上是一件好事,否则您导入的模块的版本将取决于您的搜索路径(sys.path),这很容易出错。

不管是supposed减少可能会引起争议,但这是使用 pip 进行升级的正常结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 的“Extras”和“site-packages”目录有什么区别? 的相关文章

随机推荐

  • 将变量设置为等于不带括号的函数? [复制]

    这个问题在这里已经有答案了 我正在学习 AJAX 教程 制作视频的人做了一些奇怪的事情 至少我以前没见过 他们将对象属性设置为等于函数名称 但没有熟悉的 后来他继续定义了这个函数 下面提供了代码以供参考 无论如何 设置等于不带参数的函数意味
  • ChartJS - 查找平移内的最小和最大标签(缩放时)

    我有一个这样的图表 现在 当我缩放时 我需要找到平移内的最小和最大标签 例如 最小值是2018 07 16 最大值为2018 11 3 For panning 我正在使用这个属性 pan enabled true mode x onPanC
  • 如何在表中嵌套表?

    我见过类似的主题 但不适合我的具体情况 我需要在表中嵌套一个表 它将占用几个单元格 但是当我尝试嵌套一个表时 它会同时删除周围的表 我附上了一张图片 说明它应该如何处理我的代码 而我的代码就是它当前的样子 有人可以解释这是如何完成的吗 非常
  • kendo ui dropdownlist-如何进行手动级联?

    所以我目前正在尝试调整以前的一些代码以与动态下拉列表一起使用 问题似乎是cascadeFrom属性只需要一个id 所以我需要使用另一种选择 这是我的代码 fieldsDiv html dynForms dynFormFields var a
  • 需要转置 pandas 数据框

    我有一个看起来像这样的系列 col1 id 0 a 10 1 b 20 2 c 30 3 b 10 4 d 10 5 a 30 6 e 40 我想要的输出是这样的 a b c d e 10 1 1 0 1 0 20 0 1 0 0 0 30
  • Azure Functions - 值不能为空。 (参数“连接字符串”)

    我试图设置简单的 Azure 函数来读取 XML 流并将其同步回数据库 我的计划是使用时间触发器每天执行该函数一次 然而 事情看起来并不好 即使我不使用数据库 我也会收到以下错误 Error Executed Functions
  • 没有为类型“Object?”定义运算符“[]”功能()'。尝试定义运算符“[]”

    我最近启动了一个 flutter 项目 并将一些旧的 firebase 代码迁移到新的项目 然后我更新了 firebase 并修复了大部分错误 直到这个错误困扰了我 final firestore FirebaseFirestore ins
  • 在 NuGet 中包含控制台应用程序的最佳实践

    我正在开发一个开源库 它主要由一个针对 NET Standard 2 0 的类库项目组成 最重要的是 我还实现了一个控制台应用程序 它是该库的 CLI 控制台项目 由于历史原因 仅针对 NET Framework 4 6 2 现在我想知道为
  • 放弃触摸键盘

    我发现一些代码可以帮助我在用户触摸 UITextView 元素的屏幕时退出键盘 它看起来是这样的 void touchesBegan NSSet touches withEvent UIEvent event UITouch touch e
  • 为什么有些人使用交换来进行移动分配?

    例如 stdlibc 有以下内容 unique lock operator unique lock u if M owns unlock unique lock std move u swap this u M device 0 u M o
  • 如何更新 Firebase DB 中子项的特定值

    我正在关注这个document 以下是我的更新代码 func updateDealResultToServer key String dealResult String let post dealResul dealResult let c
  • python:两个时间日期字符串的差异

    我有两个日期字符串 取自用户输入并且可能相差很大 s1 2011 10 01 10 30 00 s2 2011 10 01 11 15 00 我希望找出两者之间的差异 分钟 我应该如何解决这个问题 import datetime d1 da
  • 我网站的用户可以通过 Facebook Connect 或 API 邀请他们的朋友吗?

    使用 Facebook API 让我的耳朵流血 但尽管如此 我还是遇到了一个具体问题 我希望有人能找到解决方案 我使用 Facebook PHP SDK 允许我网站的用户将他们的 FB 帐户与其网站帐户链接 这样他们就可以稍后返回并一键登录
  • 代表 Google Apps 用户发送电子邮件

    根据文档 如果当前登录的用户拥有 Gmail 或 Google Apps 帐户 则可以使用 GAE 发送电子邮件 为了安全起见 消息的发件人地址必须是 应用程序管理员的电子邮件地址或任何有效的 应用程序的电子邮件接收地址 请参阅接收邮件 发
  • 调用 NotifyIcon 的上下文菜单

    我希望左键单击 NotifyIcon 也会导致上下文菜单 使用 ContextMenuStrip 属性设置 打开 我将如何实现这一目标 我必须自己处理 Click 并找出定位吗 编辑 用trayIcon ContextMenuStrip S
  • 制作屏幕键盘的更好解决方案

    I m trying to make on screen keyboard button A button B etc When you press button it does add character to TextBox 一切工作正
  • Rails:查找其关系具有指定属性的所有用户

    我有三个模型 class User lt ActiveRecord Base has many rosterplayers has many rosters gt uniq through gt rosterplayers end clas
  • 如何找出我的输出从哪里开始?

    我注意到我的网站源代码中的 HTML 上方有两行空行 它看起来像这样 HTML 是使用 PHP 生成的 如何找出输出从哪里开始 我尝试添加 after 希望触发类似 无法修改标题 输出从行 开始 之类的错误 但没有发生错误 如果你想获取输出
  • php 会话无法正常工作

    您好 我在从一个页面到另一个页面保持会话时遇到问题 代码在我以前运行 php5 的服务器上工作 但在我最近的服务器上工作 我想知道这是否是一个错误 有任何想法吗 会议在第一页举行 但不在第二页举行 如果您错过了 请务必执行以下操作sessi
  • Python 的“Extras”和“site-packages”目录有什么区别?

    我对 OS X 上的 Python 使用 Extras 和 site packages 中的包的方式感到困惑 特别是 我对在这些目录中看到的内容 目录中的重复包如何相互影响以及应该将安装的包放在哪里感到困惑 I had assumed th