繁体   English   中英

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

[英]Python not importing correctly after upgrade to 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

从中which -a python看到which -a python/usr/local/lib/python/usr/bin/python/有两个python 2安装,因此删除/usr/local/lib/python将解决问题。

如果您在virtualenv中工作,则升级过程中可能已损坏。 您只需运行即可修复它

virtualenv /PATH/TO/EXISTING/ENVIRONMENT

要么

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

对于没有名为_ctypes错误的模块,您可以尝试以下操作:

apt-get install libffi-dev

我希望这有帮助。

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

试试看:

import sys
sys.path

也许python路径不存在,然后不导入模块。

如果不存在,则在列表中像新元素一样添加路径。

sys.path.append(new path)

我希望这有帮助

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM