【问题标题】:Build Python as UCS-4 via pyenv通过 pyenv 将 Python 构建为 UCS-4
【发布时间】:2016-12-20 02:46:52
【问题描述】:

我在pyenv-virtualenv 环境中安装 Python 时遇到了 ImportError numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS2_AsASCIIString 这个问题。

在我的情况下,它发生在 matplotlib 包而不是 numpy (如上述问题中),但它基本上是相同的问题。

这个问题给出的答案很简单:

针对构建为 UCS-4 的 Python 重新构建 NumPy。

我不知道该怎么做。在this other question 中据说必须使用:

./configure --enable-unicode=ucs4

但我不知道如何将该命令与pyenv 一起使用。

pyenv的repoissue list也提到了这个问题,a comment给出了解决方案。可悲的是(对我来说)我不明白如何应用上述评论中解释的修复程序。

所以我的问题基本上是:如何通过pyenv 将 Python 构建为 UCS-4?

【问题讨论】:

    标签: python ucs2 pyenv ucs ucs-4


    【解决方案1】:

    安装pythonpyenvucs2

    $ export PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2
    $ pyenv install -v 2.7.11
      ...
    $ pyenv local 2.7.11
    $ pyenv versions
      system
    * 2.7.11 (set by /home/nwani/.python-version)
    $ /home/nwani/.pyenv/shims/python
    Python 2.7.11 (default, Aug 13 2016, 13:42:13) 
    [GCC 4.8.4] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sysconfig
    >>> sysconfig.get_config_vars()['CONFIG_ARGS']
    "'--prefix=/home/nwani/.pyenv/versions/2.7.11' '--enable-unicode=ucs2' '--libdir=/home/nwani/.pyenv/versions/2.7.11/lib' 'LDFLAGS=-L/home/nwani/.pyenv/versions/2.7.11/lib ' 'CPPFLAGS=-I/home/nwani/.pyenv/versions/2.7.11/include '"
    

    安装pythonpyenvucs4

    $ pyenv uninstall 2.7.11
    pyenv: remove /home/nwani/.pyenv/versions/2.7.11? y
    $ export PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs4
    $ pyenv install -v 2.7.11
    ...
    $ pyenv local 2.7.11
    $ pyenv versions
      system
    * 2.7.11 (set by /home/nwani/.python-version)
    $ /home/nwani/.pyenv/shims/python
    Python 2.7.11 (default, Aug 13 2016, 13:49:09) 
    [GCC 4.8.4] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sysconfig
    >>> sysconfig.get_config_vars()['CONFIG_ARGS']
    "'--prefix=/home/nwani/.pyenv/versions/2.7.11' '--enable-unicode=ucs4' '--libdir=/home/nwani/.pyenv/versions/2.7.11/lib' 'LDFLAGS=-L/home/nwani/.pyenv/versions/2.7.11/lib ' 'CPPFLAGS=-I/home/nwani/.pyenv/versions/2.7.11/include '"
    

    【讨论】:

    • 非常感谢 Nehal,您的回答非常清晰且具有描述性。
    猜你喜欢
    • 2023-03-28
    • 2011-03-21
    • 2014-04-18
    • 2021-08-26
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多