簡體   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