所以我的服务器上有 python 2.7.2,我需要将它更新到 python 2.7.3。所以我尝试删除 2.7.2 版本,然后使用源安装新版本。我无法删除 2.7.2 版本,因为系统使用它在服务器上运行关键服务,所以我安装了 2.7.3 版本,希望之后我能够删除旧版本。我仍然无法删除旧版本,尽管当我安装任何我无法导入的模块时我能够执行 python 2.7.3。我将路径添加到 sys.path 并开始查找模块,但导入它会导致另一个错误。
我的 python 执行 /usr/local/bin/python 这是问题所在的 2.7.3 版本。如果我尝试像这样 /usr/bin/python 执行 python,它会执行旧版本并且在那里一切正常,我可以导入新安装的模块。
那么我该怎么做才能使 python 2.7.3 工作呢?
我搜索了很多教程并尝试了诸如在 python 上的 .pth 文件中添加库之类的方法,然后我开始查找模块,但是在导入它时出现如下错误:
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
import add_newdocs
File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
from type_check import *
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
import numpy.core.numeric as _nx
File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
import multiarray
ImportError: /usr/local/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString
谢谢您的帮助
编辑问题已解决
因此,为了解决缺少的导入模块,我在 /usr/local/lib/python2.7/site-packages/ 下创建了一个 .pth 文件,其中包含 python 模块所在的目录,并且 python 开始找到它们。要解决兼容性问题,您可以从源代码安装 python 并指定 unicode 执行 ./configure --enable-unicode
更多信息在这里