2012-06-15 22 views
2

我使用virutalenvwrapper併爲我的django應用程序創建了一個virtualenv。我正在運行Python 2.6.1。當時我設置了這個 不幸的是python 2.6.1有一個關於在kwargs中傳遞unicode字符串的錯誤。因此,我正在尋找更新我的vritualenv使用的Python二進制文件。virtualenvwrapper - >更新python二進制

Python 2.7.2全部安裝。我只需要了解什麼是「遷移」我當前的virtualenv以使用新的python二進制文件的最佳方式。

據我所知,virtualenv和virtualenvwrapper對安裝過程中使用的python很敏感。那麼我是否,

1)卸載並重新安裝virtualenv,virutalenvwrapper,同時確保我使用python 2.7?如果我這樣做,舊的virtualenv會工作,還是我需要重新創建它?

2)可我不知怎麼竟更新我的virtualenv使用的二進制?


更新:
我剛剛結束了從頭創建一個新的ENV。
我沒有卸載並重新安裝virutalenv或virtualenvwrapper。仍然不知道是否會在後來咬我,但到目前爲止似乎沒問題。

想知道如果在virtualenv包裝器和virtualenv上更改python版本是否可以,我們仍然想知道。

回答

3

virtualenvwrapper有一個cpvirtualenv命令。你是否嘗試過從新的Python中執行它?

如果這不起作用,您可以銷燬舊的virtualenv併爲您的項目創建一個新的。如果你一直在努力追蹤你的依賴關係(在setup.pyrequirements.txt),應該很容易。如果您不努力,可以使用pip freeze來捕獲當前安裝的庫。

+0

所以,它聽起來就像virtualenvwrapper和virtualenv中是不敏感的,在安裝使用的Python版本?我可以重新創建整個事情,但要求一個是枕頭,我需要做的手工PIP --no安裝它,修改配置文件等等等等等等只是懶得做了。 –

+0

的virtualenv是敏感的我測試了它的最後一次,但我想cpvirtualenv也許能夠修復破碎爲新的virtualenv其年齡的調整的一部分。只是一個猜測。 –

+0

感謝您跟進Hank。 –

0

所以爲了其他人的利益可能會讀這個。
今天突然出現問題。在通過ssh登錄後,我收到了

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named virtualenvwrapper.hook_loader 
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/home/*******/opt/bin/python and that PATH is set properly. 

WTF。它工作正常,因爲...我想現在是一個月。原來,也許我從來沒有關閉過我的ssh會話(即virtualenvwrapper從不必重新啓動)。

谷歌沒有太大的幫助。事實證明,問題正是錯誤信息所說的。沒有爲指定的python安裝Virtualenv。 (2.7) 它被安裝爲我以前使用的版本(2.6) D'oh。

因爲我沒有真正使用2。6了,我乾脆改名包含我的本地站點包目錄從

~/.local/lib/python2.6/site-packages 

~/.local/lib/python2.7/site-packages 

(站點包附加到路徑只是爲了清楚什麼,爲什麼我改名)

同樣,我可以很容易地運行的easy_install或畫中畫virtualenvwrapper安裝使用python2.7二進制一個新的本地目錄。 (理論上應該已經創建了相應的站點包文件夾)