我制作了一个简单的wxPython脚本,只显示一个窗口。当我使用wxPython(import wx
)在我的普通python 2.7.3中运行它时,它运行正常。但是当我在virtualenv中运行它时,我得到以下结果:
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'
这是为什么?我在我的virtualenv的bin文件夹中安装了wx(./pip install wx
)
答案 0 :(得分:5)
(我是一个python noob)我会在这里嘲笑我如何决定让wx在虚拟环境中工作,在Windows上测试。
首先你创建你的virtualenv(我在项目目录中做了我的)
virtualenv env
然后,转到env \ Lib \ site-packages文件夹,并创建一个名为wx.pth的文件(名称无关紧要,只对文件扩展有影响)
打开wx.pth文件并进行编辑,使其指向你的wx-X.X-msw,其中X.X是你的wx版本号。我的是3.0(2014年7月)。应该是这样的事情:
C:\Python27\Lib\site-packages\wx-3.0-msw
激活你的virtualenv。然后打开你的python shell,并尝试运行import wx; app = wx.App()
如果你没有得到任何讨厌的消息,那么你应该全部设置。
希望这有帮助!
答案 1 :(得分:3)
对于其他人来说,这对我有用:
在Mac OSX上,我使用:
在Homebrew中安装了wxpythonbrew install wxpython
转到virtualenv site-packages目录:
cd /venv/lib/python2.7/site-packages
然后链接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
答案 2 :(得分:2)
我说这些步骤不久前对我有用了......
答案 3 :(得分:2)
wx
on PyPI是一个具有一个简单功能的垃圾模块。不幸的是,有人获得了他们的“第一个python模块”的名称,其中有许多人confused和irritated。
您提供的字符串import
和pip install
因此显然可能不同,例如import PIL
和pip install pillow
,或几乎每个Django插件。在这里,您想 pip install wxpython
在Ubuntu上安装wxPython可能有点痛苦,所以我建议使用apt-get install python-wxgtk2.8
安装它(如果你的venv有--no-site-packages
)将全局库文件夹符号链接到virtualenv的文件夹a la :
nick@cody:~/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/
答案 4 :(得分:1)
这适用于Windows virtualenv ...
首先,转到此处获取与您的系统匹配的wxpython的轮式二进制文件http://www.lfd.uci.edu/~gohlke/pythonlibs/#wxpython
现在在你的virtualenv命令提示符下,确保你有方向盘
>pip install wheel
然后安装wxpython common
>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()
如果出现一个窗口并且没有发生错误,那么你就是好的:)