gpt4 book ai didi

python - 升级到 macports python 3.5 后安装需要 .so 文件的 python 包时出错

转载 作者:行者123 更新时间:2023-12-01 03:50:10 27 4
gpt4 key购买 nike

我见过类似的问题,但没有一个能回答我的问题。我最近在 Mac OS X 上使用 Macports 升级到 python v3.5。如果有有效的 Macport,安装 python 包就可以正常工作:

sudo port install py35-numpy

但是,如果我尝试使用 pip3 安装需要 .so 文件的 python 软件包,则会出现错误。例如,没有 pystan 端口。首先,我安装 pip

sudo port install py35-pip

然后我使用 pip 将 pystan 安装到我的 Python 3.5 目录

sudo pip3 install --target=/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/ pystan

Installing collected packages: Cython, numpy, pystan
Successfully installed Cython-0.24 numpy-1.11.1 pystan-2.9.0.0

并不是说它实际上没有安装 Cython 或 numpy,因为它们已经在那里了。但是当我尝试运行 pystan 时:

    Nate$ ipython
Python 3.5.2 (default, Jun 27 2016, 03:10:38)
Type "copyright", "credits" or "license" for more information.

IPython 5.0.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.

In [1]: import pystan
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-7b354c723dbb> in <module>()
----> 1 import pystan

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/__init__.py in <module>()
7 import logging
8
----> 9 from pystan.api import stanc, stan
10 from pystan.misc import read_rdump, stan_rdump
11 from pystan.model import StanModel

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/api.py in <module>()
10 import hashlib
11
---> 12 import pystan._api # stanc wrapper
13 from pystan._compat import string_types
14 from pystan.model import StanModel

ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so, 2): Symbol not found: _PyBaseString_Type
Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so
Expected in: flat namespace
in /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so

当我尝试通过 pip 安装 numpy 时,我看到了同样的错误,而使用 netCDF4 时,我也看到了同样的错误。

In [2]: import netCDF4
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-2-f731da2de255> in <module>()
----> 1 import netCDF4

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/__init__.py in <module>()
1 # init for netCDF4. package
2 # Docstring comes from extension module _netCDF4.
----> 3 from ._netCDF4 import *
4 # Need explicit imports for names beginning with underscores
5 from ._netCDF4 import __doc__, __pdoc__

ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so, 2): Symbol not found: _PyCObject_Type
Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so
Expected in: flat namespace
in /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so

.so 文件有什么问题?或者,就此而言,我的电脑?

最佳答案

您确定pip3属于MacPorts安装的pip版本,最好是pip-3.5?我的猜测是,您使用的是来自不同 Python 安装的 pip,因此这会将 C 扩展链接到错误的 Python 库,并从 MacPorts 强制安装到 Python3.5 的包目录中。

要修复此问题,请改用 pip-3.5(然后您也可以省略 --target 选项)。

编辑:或执行sudo port select --set pip pip35,然后仅使用pip

编辑:我刚刚检查过,确实(当前)MacPorts pip 版本根本不提供 pip3 命令,因此这显然属于不同的 Python 版本。执行 which -a pip3 来找出是哪一个。

关于python - 升级到 macports python 3.5 后安装需要 .so 文件的 python 包时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38385191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com