【问题标题】:MacPorts pip install links .so file to wrong python executable on MacOS 10.11MacPorts pip install 将 .so 文件链接到 MacOS 10.11 上的错误 python 可执行文件
【发布时间】:2016-10-22 05:21:51
【问题描述】:

我使用的是 MacOS 10.11,除了本机 Python 安装之外,我还通过 MacPorts 安装了 Python 和 Pip。 pythonpip 与各自的 MacPorts 版本相关联。

但是,当通过安装包时

sudo pip install <my-package>

该包的特定 .so 文件与本机 Python 可执行文件链接。更准确地说,otool -L 在该 .so 文件上的输出是

/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.5)

而 Python 的 MacPorts 版本位于

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/

如何强制 Pip 使用正确的 Python 版本进行链接?

【问题讨论】:

  • 最好设置一个虚拟环境。见this answer
  • @LexScarisbrick:感谢您的链接!但是,在虚拟环境中安装包时,.so 文件仍然链接到本机系统 python。在虚拟环境中调用 pip 之前是否必须修改任何配置?
  • 有趣。哪个包裹和在哪里可以获取?如果包不公开,包中的setup.py 是否有shebang
  • 它可以从 PyPi 公开获得。它是 nupic 包。当调用 pip install nupic 时,它也会安装包 nupic.bindings。其中有 nupic/bindings/_math.so 文件,该文件与不正确的 python 发行版相关联。

标签: python python-2.7 pip macports


【解决方案1】:

简短的版本是:你不能。

这不是 pip 的问题。 nupic 包依赖于 nupic.bindings 包,其中包含您注意的 _math.so,它目前通过 PyPI 仅作为二进制文件分发:

https://pypi.python.org/pypi/nupic.bindings

您可以编译自己的 nupic.bindings 包,但构建过程看起来相当复杂,这可能是他们仅分发二进制文件的原因:

https://github.com/numenta/nupic.core

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2021-01-30
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    相关资源
    最近更新 更多