[英]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.