【问题标题】:Cannot import gnureadline package in Python3.x (Mac OS)无法在 Python3.x (Mac OS) 中导入 gnureadline 包
【发布时间】:2016-05-19 01:39:33
【问题描述】:

我已经使用 pip (2.x) 和 pip-3.5 成功安装了 gnureadline。虽然在 Python2.7 中导入它可以完美运行,但在 Python 3.5 中它会引发以下异常:

Python 3.5.1 (default, Jan 31 2016, 04:03:04)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import gnureadline
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gnureadline.so, 2): Symbol not found: _PyInt_AsLong
  Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gnureadline.so
  Expected in: flat namespace
 in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gnureadline.so

奇怪的是python在Python2.7的路径中寻找包。

平台是 OSX 10.11.3。

【问题讨论】:

  • sys.path的值是多少?

标签: python macos python-3.5


【解决方案1】:

您必须检查您的 PYTHONHOME 环境变量。

echo $PYTHONHOME检查它,它应该指向3.5版本,
如果不正确,请通过以下命令修复它
export PYTHONHOME=/full path to appropriate python libs/

【讨论】:

    【解决方案2】:

    在检查了BasicWolf 指出的 sys.path 变量后,我注意到 2.7 站点包的包含独立于我运行的 python 版本。这是由于在我的 .bashrc 文件中覆盖了 PYTHONPATH 环境变量:

    export PYTHONPATH=~/Library/Python/2.7/lib/python/site-packages/
    

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2015-08-17
      • 2018-06-17
      • 2016-05-09
      • 1970-01-01
      相关资源
      最近更新 更多