升级到14.04后Python无法正确导入

时间:2014-07-27 21:24:30

标签: python ubuntu ubuntu-14.04

我无法从带有c扩展名的标准库中导入导入模块。这是在我从12.04升级到Ubuntu 14.04之后发生的。我已经尝试重新安装python,python-dev,但它没有帮助。我注意到其他人有类似职位,但他们都使用virtualenv,而我并没有全部使用它。

Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pickle, email, json, readline, socket, turtle
>>> import ctypes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/ctypes/__init__.py", line 10, in <module>
    from _ctypes import Union, Structure, Array
ImportError: No module named _ctypes
>>> import io
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: No module named _io
>>> import datetime
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named datetime

5 个答案:

答案 0 :(得分:3)

来自which -a python我们看到/usr/local/lib/python/usr/bin/python/中有两次安装python 2,因此删除/usr/local/lib/python会对问题进行排序。

答案 1 :(得分:1)

如果您在virtualenv工作,它可能在升级期间损坏。 您只需运行

即可修复它
virtualenv /PATH/TO/EXISTING/ENVIRONMENT

virtualenv --system-site-packages /PATH/TO/EXISTING/ENVIRONMENT

答案 2 :(得分:1)

对于没有名为_ctypes的模块错误 你可以试试这个:

print (a) 0 1.0 1 1.0 2 1.0 3 1.0 4 1.0 5 2.0 6 2.0 7 2.0 8 2.0 Name: A, dtype: float64

我希望这会有所帮助。

答案 3 :(得分:0)

也许您的路径未正确设置。

试着看看:

import sys
sys.path

可能python路径不存在,然后不导入模块。

如果没有,请在列表中添加类似新元素的路径。

sys.path.append(new path)

我希望这会有所帮助

答案 4 :(得分:0)

根据您的评论,which python返回/usr/local/lib/python,看起来您的本地安装的Python与您的发行版的安装不同。分发包永远不会安装到Ubuntu上的/usr/local中。将自定义安装的Python与您提供的分发库混合(如错误中的/usr/lib路径所示)可能会导致各种问题。

我建议删除/usr/local/lib中安装的Python(这是安装二进制文件的一个奇怪的地方),或者从PATH中删除它,以便您可以访问您的发行版安装的Python。