【问题标题】:Python not importing correctly after upgrade to 14.04升级到 14.04 后 Python 无法正确导入
【发布时间】:2014-07-27 21:24:30
【问题描述】:

我无法从具有 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 python 输出了什么以及您是如何重新安装的?
  • /usr/local/lib/python sudo apt-get install --reinstall python
  • which -a python 呢?
  • /usr/local/bin/python /usr/bin/python
  • 好的,做到了!我不确定如何接受您的答案,因为它在 cmets 中。如果您在下面留下答案,我可以接受,因为您在 cmets 中帮助了我很多。

标签: python ubuntu ubuntu-14.04


【解决方案1】:

which -a python 我们看到在/usr/local/lib/python/usr/bin/python/ 中安装了两次python 2,因此删除/usr/local/lib/python 将解决问题。

【讨论】:

    【解决方案2】:

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

    virtualenv /PATH/TO/EXISTING/ENVIRONMENT
    

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

    【讨论】:

      【解决方案3】:

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

      apt-get install libffi-dev

      我希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        可能您的路径设置不正确。

        试试看:

        import sys
        sys.path
        

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

        如果不存在,则将路径添加为列表中的新元素。

        sys.path.append(new path)
        

        希望对你有帮助

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-10-29
            • 2016-12-04
            • 2017-03-05
            • 2020-08-20
            • 2022-06-23
            • 1970-01-01
            相关资源
            最近更新 更多