【问题标题】:Installing pyobjc on a Mac在 Mac 上安装 pyobjc
【发布时间】:2017-07-17 14:28:18
【问题描述】:

我在 Mac 上安装 pyobjc 时遇到问题。
基本上我必须在系统默认python的新Mac系统上安装pyobjc。到目前为止,我已经尝试过 easy_install、pip 和下载 pkg 文件并进行安装。所有人都以不同的方式给我一个错误。有些人给我一个错误,说某些 safari 文件由于某些权限被拒绝而丢失了其他不能,即使我是通过 sudo su 运行它们。
然后我找到了解决办法。

    pip install pyobjc --user

这行得通,我可以访问我需要的所有模块,但是如果我尝试通过 sudo 运行 python,我无法访问这些模块。
任何人都可以建议解决此问题。

注意:我也不介意另一种安装方法。此外,由于之前的一些困难,我还没有尝试过 brew。

注意 2:我需要能够使用计算机上的所有用户访问这些模块,root 用户和我(非 root 用户)

【问题讨论】:

  • 一个想法是检查你的路径和 python,sudo 用户可能已经安装并指向不同的路径
  • 我的电脑上只安装了一个python。只是机器自带的系统python。是新机新装的mac。我不知道它如何安装到不同的路径中?还是我在这里遗漏了什么?

标签: python macos pip pyobjc


【解决方案1】:

我必须(暂时)移动(使用 sudo)/Library/Python/2.7/site-packages/Extras.pth 到另一个名称,然后才能安装当前的 pyobjc。

这对我有用:

sudo mv /Library/Python/2.7/site-packages/Extras.pth /Library/Python/2.7/site-packages/Extras.pth_orig
pip install --upgrade pyobjc
sudo mv /Library/Python/2.7/site-packages/Extras.pth_orig /Library/Python/2.7/site-packages/Extras.pth

.pth 文件中的某些内容似乎会干扰安装,但不会妨碍 pyobjc 的运行。

【讨论】:

    【解决方案2】:

    但是如果我尝试通过 sudo 运行 python,我无法访问那些 模块。

    因为sudo python 基本上意味着以其他用户身份运行python(默认为root)。该用户可能有一组不同的环境变量,包括$PATH

    一些 Linux 发行版对 root 用户使用较旧的 Python 版本,例如 centos。如果您使用 sudo 运行的 Python 版本不正确,您将无法访问由 pip 安装的那些模块。

    所以在我看来,如果你没有得到权限问题,你不需要使用sudo,使用sudo可能会带来意想不到的错误(大多数environment variables问题),可能是chownchmod可以解决这些问题。

    所以这是我的计划:

    方案A:最好的方法是尝试使用virtualenv

    Plan B:不使用sudo 命令安装模块,如果出现权限错误(不是很常见),请尝试--user

    安装到您平台的 Python 用户安装目录。 通常是 ~/.local/,或 Windows 上的 %APPDATA%Python。

    在大多数情况下,您应该修改您的PYTHONPATH。详情请参阅How do I access packages installed by pip --user

    Plan C:所有相关命令都使用 sudo.sudo pip install (all modules)sudo python script.py 执行。不是一个好主意。

    【讨论】:

    • 我在使用 sudo 安装时出错,所以我使用了 --user。但我需要能够通过所有用户访问模块。
    • 我将如何使用 virtualenv。我以前没用过。
    • @ShdwKnght333 访问模块,查看this question。您也可以阅读virtualenv doc
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    相关资源
    最近更新 更多