为什么使用和不使用 sudo 运行 Python 时 PYTHONPATH 不同?

2023-12-20

我的 OSX 系统和 python 出了点问题,谷歌搜索也没有解决。我已经卸载了 python 的所有痕迹,除了我不应该卸载的 OSX 系统 python 包,然后使用来自 python.org 的新 python 重新开始,并安装了 pip。

现在...不确定下面的这种特殊行为是否是问题的一部分,但对我来说似乎很奇怪:

我运行了两次Python。一次使用 sudo,一次不使用。没有 sudo,我无法访问 pip。这是怎么回事?

$ sudo /Library/Frameworks/Python.framework/Versions/2.7/bin/python
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pip

然而...

$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>>

我已经提到过:sudo python 运行旧的 python 版本 https://stackoverflow.com/questions/15441440/sudo-python-runs-old-python-version

我的 .bash_profile 中没有任何内容,任何其他配置文件中也没有任何内容。

我所做的一切如下:

export PYTHONPATH=/lib/python2.7/site-packages/

ls $PYTHONPATH返回:

_markerlib          pip             pkg_resources.pyc       setuptools-8.0.1.dist-info  virtualenv.pyc
easy_install.py         pip-1.5.6.dist-info     setuptools          virtualenv-1.11.6.dist-info virtualenv_support
easy_install.pyc        pkg_resources.py        setuptools-7.0.dist-info    virtualenv.py

which pip返回:

/bin/pip

sudo覆盖你的export。它是相同的 Python(你可以从它打印的版本信息中轻松看出),但它以不同的方式运行(系统默认值)PYTHONPATH.

这是的工作之一sudo;它将环境净化到安全​​默认值。您也许可以对此进行调整,但真正的问题是,您想要实现什么目标?如果你需要运行root针对特定环境,设置virtualenv和/或编写一个包装器脚本,在分派 Python 之前进行设置。

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

为什么使用和不使用 sudo 运行 Python 时 PYTHONPATH 不同? 的相关文章

随机推荐

  • Android从缩略图获取图像路径?

    我正在尝试为目前市场上的我的应用程序提供关键更新 我需要查询 MediaStore 中的缩略图 并将缩略图加载到 GridView 中 到目前为止一切顺利 现在我只需要根据我所拥有的内容 即缩略图的路径 获取用户外部存储上实际全尺寸图像的路
  • Oracle复制数据到另一个表

    在Oracle中 我将数据从备份复制到新表 但不起作用 正确的语法是什么 Thanks select CODE MESSAGE into EXCEPTION CODES CODE MESSAGE from Exception code tm
  • 为什么 sizeof(std::mutex)==40 (gcc,clang,icc)? [复制]

    这个问题在这里已经有答案了 而不是sizeof std atomic
  • 使用 SvelteKit 将图像放置在哪里

    我已经使用 Svelte 一段时间了 现在我已切换到 SvelteKit 这样我就可以添加多个页面 我想向我的网站添加一些图像 但我不知道将它们放在哪里 在 Svelte 中我会把它们放进去public images但没有public带有
  • 在 Android 上的 AAC 流中查找

    我从 HTTP 服务器获取 AAC 流并将其用作MediaPlayer在安卓中 它运行得很好 但是当我尝试执行时mediaPlayer seekTo int position 我收到以下错误大约一百万次 WARN AACDecoder 13
  • 处理 PowerShell 脚本中的命令提示符错误

    我正在尝试运行一些命令提示符命令 例如schtasks在 PowerShell 脚本中 我想知道如何处理 PowerShell 中命令引发的错误 I tried cmd exe c schtasks Query TN xx echo ERR
  • System.Messaging - 为什么 MessageQueue 不提供 Send 的异步版本

    有人知道为什么 System Messaging 不提供异步版本的 Send 方法来将 MSMQ 消息发送到队列 实际上有 Peek 和 Receive 方法的异步版本 通过可以转换为 C 5 异步等待方法的 Begin End 对 但令人
  • 初始化一个sqlite数据库android

    大家好 我对 Android 开发还很陌生 我想向我的应用程序添加一个数据库 问题是我不知道如何仅初始化整个表一次 我读了很多书 发现你可以做到 的压倒性作用onCreate SQLiteDatabase db 辅助类中的方法 这些是我的数
  • 全局 Jest SpyOn 函数不调用原始函数

    我希望有人能帮助我理解 js 原型的交互性和jest spOn 我有一个小例子 文件中的示例类TestObj ts export default class TestObj foo Do Something e g console log
  • iOS 7 模拟器日语键盘词典位于哪里?

    这个问题和这个有点相似 如何在 iPhone 模拟器上启用日语键盘 https stackoverflow com questions 8051141 how do i enable the japanese keyboard on the
  • 为什么需要多个shared_future对象来同步数据

    指向数据结构的指针通过以下方式与多个线程共享std promise and std shared future 从书中 C 并发实践 作者 Anthony Williams 第 85 86 页 似乎只有当每个接收线程使用副本时 数据才会正确
  • 如何以编程方式显示或隐藏 Outlook 信封图标?

    例如 如何在 Outlook 规则中显示或隐藏 Outlook 信封图标 信封图标选项可通过以下位置设置 工具 gt 选项 电子邮件选项 高级电子邮件选项 在通知区域显示信封图标 我之所以说以编程方式是因为没有任何标准规则操作适用 清除消息
  • 提高 Python 中超大型字典的性能

    我发现如果我在开始时初始化一个空字典 然后在for循环中向字典中添加元素 大约110 000个键 每个键的值是一个列表 也在循环中增加 速度会下降for 循环继续 我怀疑问题是 字典在初始化时不知道键的数量 并且它没有做一些非常聪明的事情
  • 如何处理错误“由于 @netlify/plugin-deploy-core 插件中的错误而导致部署失败。”?

    我在将 Next js 项目部署到 Netlify 时遇到问题 昨天运行良好 但现在我在部署时遇到错误 Here I attached error log screenshot and full log 11 40 08 AM Build
  • AutoMapper 不会将计算字段映射到标量

    我试图将我的 MVC3 项目分离到适当的 DAL Domain ViewModel 架构中 但我遇到了 AutoMapper 和将计算字段从我的域映射到我的视图模型的问题 这是我正在尝试做的事情的一个例子 界面 public interfa
  • d3 - 将元素附加到外部 SVG 文件

    我有一个图形想要加载为 d3 可视化的背景 或者简单地作为svg我可以附加circle元素 插图位于svg格式 我尝试将其加载到我的html文件的方式允许我将元素 例如圆圈 附加到 或顶部 svg文件或到div这是我尝试过的两种方法
  • 从浏览器链接启动 Android 应用程序

    我在尝试使用自己的方案从浏览器启动应用程序时遇到问题 代码如下 清单文件
  • 如何在 SciPy 中创建对角稀疏矩阵

    我正在尝试创建一个稀疏矩阵 该矩阵具有沿对角线延伸的二维图案 通过一个简单的例子可能最容易解释这一点 假设我的模式是 1 0 2 0 1 我想创建一个稀疏矩阵 2 0 1 0 0 0 0 0 0 2 0 1 0 0 0 0 1 0 2 0
  • 使用 C# 以编程方式在 IIS 中创建网站并设置端口号

    我们已经能够创建一个网站 我们使用此链接中的信息来完成此操作 https msdn microsoft com en us library ms525598 aspx https msdn microsoft com en us libra
  • 为什么使用和不使用 sudo 运行 Python 时 PYTHONPATH 不同?

    我的 OSX 系统和 python 出了点问题 谷歌搜索也没有解决 我已经卸载了 python 的所有痕迹 除了我不应该卸载的 OSX 系统 python 包 然后使用来自 python org 的新 python 重新开始 并安装了 pi