2010-07-28 185 views
0

我正在使用安裝了python,django和pinax的Windows機器。從Python虛擬環境導入模塊(SQLITE3)

我可以從任何正常位置導入模塊(即使它不在真正安裝的目錄中)。但是,當我在爲Pinax構建的虛擬環境中時,我無法導入這些相同的模塊。

這可能是什麼原因造成的?有什麼解決方法?

回答

1

由於the summary說,

[virtualenv中]創建有自己的安裝目錄 的環境 ,不與其他的virtualenv 環境共享 庫(並可選地不 使用全球安裝的庫 )。

然而,你似乎感到驚訝,你已經建立了virtualenv中「不共享庫」你爲什麼要感到驚訝,當共享並非是的virtualenv整點 - ?!)

一旦您製作了python virtualenv.py ENV,爲了保持引用我已經提到的摘要,「如果使用ENV/bin/easy_install,軟件包將被安裝到環境中」。

因此,請安裝所有需要在虛擬環境中導入的軟件包。 (假設您已使用--no-site-packages選項製作虛擬環境,則還需要對所有已安裝的「網站範圍」軟件包也這樣做),因爲該選項的目的是爲了更好地控制它們而排除它們和隔離)。

+0

謝謝!我假定virtualenv只是通過在virtualenv中搜索模塊開始的,如果它沒有發現它會去到全局站點包的位置。 我沒有使用no-site-packages,所以我不確定它爲什麼沒有在全局sitepackages文件夾中查找我的軟件包。在任何情況下,我都按照虛擬環境中的說明安裝了PIL,並且工作正常。 再次感謝 – DevX 2010-07-28 02:57:58

+0

@DevX,不客氣。不知道是什麼使默認的「沒有網站包」(它應該,但不是;-),也許你遵循指示或使用Pinax的virtualenv構建腳本和那些指令或腳本包含該標誌。無論如何,很高興我一直在幫助! – 2010-07-28 04:11:22

+0

只要對最佳實踐感興趣,您是否通常將您的所有模塊安裝在您工作的每個項目的虛擬環境中? – DevX 2010-07-28 04:41:33

2

診斷故障來導入,請嘗試使用-v開關蟒蛇:

python -v my_program.py 

它會顯示其試圖導入模塊。