2012-04-28 70 views
54

將Ubuntu升級到Precise Pangolin(12.04),並且Python的Random現在已損壞......我懷疑其他事情也可能被破壞。我如何修復Python?Python ImportError無法導入urandom自Ubuntu 12.04升級

File "/usr/lib/python2.7/random.py", line 47, in <module> 
    from os import urandom as _urandom 
ImportError: cannot import name urandom 

唉,可憐的Python!我認識他,隨機,一個無限的模塊,最可能的混亂。他在我的工作空間裏對我的工作空間感到厭惡了! 我的異常處理程序在它上升。

編輯運行中的virtualenv

+0

@ Mark0978如果您對問題的結束有問題,請諮詢[meta]。做*不*問題和增加評論,因爲你不喜歡發生的事情。我已經根據第一條評論重新提出了這個問題,但是您所做的並不適合該網站。請日後避免這種情況,否則可能會採取進一步的主持人行動。 – casperOne 2012-11-16 20:26:32

回答

45

這是你的問題?

https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/989856

似乎通過在虛擬環境中運行它引起的,並且有一個變通。

順便說一句,這是谷歌的最高結果。

+0

謝謝你的鏈接。它建議重建一個人的虛擬環境。然而,我們中的一些人有幾十個虛擬世界,每個虛擬世界都有很多依賴關係。你知道是否還有其他可能的解決方案可能不需要爲每個解決方案重新構建? – 2012-05-01 21:10:29

+0

我很困惑如何能夠解決這個問題。如果每個虛擬機都有自己的本地安裝的Python解釋器,那麼您如何才能對其中一個進行修改並修復其他的? – 2012-05-02 02:51:02

+4

正如Adam Victor在這裏寫的:https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/989856你可以試試$:virtualenv〜/ path/to/virtualenv 或者你在virtualenvs時dir $:ls | xargs -I {} virtualenv {} – lechup 2012-05-03 15:09:58

0

好吧,也許它只是沒有配置?檢查this網站,並查看配置部分。

7

我得到這個相同的錯誤,並通過重新運行virtualenv(例如,virtualenv --no-site-packages ~/venv/myvirtualenv/)來修復它。

+0

是的,它的工作。 – Paolo 2012-04-30 15:47:49

36

我升級到12.10時,並升級到16.04時有同樣的問題(在16.04,該消息是no module named datetime

爲了解決它只是跑的virtualenv在相同的安裝和它的工作。給它的--no-site-packages標誌保護你的模塊:

$ virtualenv --no-site-packages ~/lib/virtualenv/netunong 
Overwriting /home/adam/lib/virtualenv/netunong/lib/python2.7/site.py with new content 
New python executable in /home/adam/lib/virtualenv/netunong/bin/python 
Installing distribute.....<skippping dots, of course>.......done. 
Installing pip................done. 
Overwriting /home/adam/lib/virtualenv/netunong/bin/activate with new content 
Overwriting /home/adam/lib/virtualenv/netunong/bin/activate_this.py with new content 

因爲我有我的所有virtualenvs在同一個目錄,我只是跑:

$ ls | xargs -I{} virtualenv --no-site-packages {} 
+1

這太棒了 - 不過要注意的是,如果你有自定義選項到你的虛擬環境中(特別是不同的python版本),上面可能會刪除它們 – 2012-07-03 10:51:22

+0

for * in; do python =「\'{ls $ ve/bin/python; ls $ ve/bin/python *。* 2>/dev/null | sort;} | tail -n 1 \'」; python = \'basename「$ python」\'; virtualenv --python $ python $ ve; 完成 – 2012-07-03 11:14:50

+0

在10.04上爲我工作,爲廣泛的django應用程序venv編寫了python 2.6 venv。我甚至沒有必要在新的(刷新的)venv上執行'pip install -r requirements/base.txt',因爲所有的python模塊仍然安裝。 – hobs 2012-10-05 17:49:14

1

另一種方案是,如果你安裝它來除去PIP用apt-get的 使用wget去取

wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py 

,然後運行

python get-pip.pysudo python get-pip.py如果您未使用root登錄。

這對我有效。

相關問題