2013-01-03 28 views
4

我做了一個簡單的顯示窗口的簡單wxPython腳本。當我用wxPython(import wx)在普通python 2.7.3中運行它時,它工作正常。但是,當我在virtualenv中運行它,我得到如下:不能在virtualenv中使用wxPython?

Traceback (most recent call last): 
    File "/Users/student/Desktop/text.py", line 3, in <module> 
    class mainWindow(wx.Frame): 
AttributeError: 'module' object has no attribute 'Frame' 

這是爲什麼?我已經安裝了WX(在我的virtualenv的bin文件夾./pip install wx

+0

它說INSTALLEd如果你從你的virtualenv運行「點搜索wxPython」? –

+0

@RickardZachrisson該庫是'wx',而不是'wxPython'。 'pip search wx'給了我很多文本,但是運行'import wx'不會給出錯誤。 – tkbx

回答

2

我認爲,這些步驟前一陣子工作對我來說...

wxpython in a virtualenv

+1

我不想(不能)從源代碼構建。我使用virtualenv的原因是因爲我沒有root。 – tkbx

+0

這些也不適用於我了。在第6步獲取錯誤 –

2

wx on PyPI是具有一個微不足道的功能垃圾模塊。不幸的是,有人爲他們的「第一個Python模塊」獲得了名字,其中有許多人擁有confusedirritated

因此,您給importpip install的字符串可能明顯不同,例如, import PILpip install pillow,或幾乎每個Django插件。在這裏,你想pip install wxpython

在Ubuntu上安裝的wxPython可以是一個有點痛,所以我會建議使用apt-get install python-wxgtk2.8安裝它,然後(如果您的VENV有--no-site-packages)符號鏈接全局庫文件夾到virtualenv中的文件夾LA:

[email protected]:~/sandbox/lib/python2.7/site-packages 
$ ls -lhtr wx* 
... wx.pth -> /usr/lib/python2.7/dist-packages/wx.pth 
... wx-2.8-gtk2-unicode -> /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/ 
5

(IM蟒小白)我想在這裏COMENT我該怎麼解決,使WX工作在虛擬ENV,在Windows上進行測試。

首先創建您的virtualenv(我做我的項目的目錄內)

virtualenv env 

然後,轉到ENV \ LIB \站點包文件夾,並創建一個文件名爲有wx.pth(名無關緊要,只關係到文件的擴展)

打開wx.pth文件並對其進行編輯,使其指向您的wx-XX-msw,其中XX是您的wx版本號。礦是3.0(2014年7月)。它應該是這樣的:

C:\Python27\Lib\site-packages\wx-3.0-msw 

激活你的virtualenv。然後打開你的python shell,如果你沒有收到任何惡意郵件,請嘗試運行import wx; app = wx.App(),那麼你應該全部設置好。

希望這會有所幫助!

3

對於其他人來說,這裏是我工作:

brew install wxpython 

變成你的virtualenv站點包目錄:

cd /venv/lib/python2.7/site-packages 

在Mac OSX我用安裝了自制的wxPython

然後鏈接到wx.pth

ln -s /usr/local/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wx.pth wx.pth 

然後鏈接wx-3。0-osx_cocoa目錄:

ln -s /usr/local/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wx-3.0-osx_cocoa wx-3.0-osx_cocoa 
1

這在Windows的virtualenv工作對我來說...

首先,去這裏得到的wxPython的車輪二進制文件系統http://www.lfd.uci.edu/~gohlke/pythonlibs/#wxpython

匹配現在,在您的virtualenv命令提示符下,請確保您有輪

>pip install wheel 

然後安裝常用

的wxPython 0
>pip install wxPython_common-3.0.2.0-py2-none-any.whl 

最後安裝的wxPython本身

>pip install wxPython-3.0.2.0-cp27-none-win_amd64.whl 

現在在virtualenv中Python解釋器,查看是否安裝是通過製作和運行一個例子

>python 
... 
>>> import wx 
>>> app = wx.App(False) 
>>> frame = wx.Frame(None, wx.ID_ANY, "Running from virtualenv!") 
>>> frame.Show(True) 
>>> app.MainLoop() 

如果出現一個窗口,併成功沒有錯誤發生,那麼你都很好:)