4

我制作了一个简单的 wxPython 脚本,它只显示一个窗口。当我使用 wxPython ( ) 在我的普通 python 2.7.3 中运行它时import wx,它工作正常。但是当我在 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'

为什么是这样?我已经安装了 wx(./pip install wx在我的 virtualenv 的 bin 文件夹中)

4

5 回答 5

5

(我是 python 菜鸟)我会在这里评论我如何解决让 wx 在虚拟环境中工作,并在 Windows 上进行测试。

首先你创建你的virtualenv(我在项目目录中做了我的)

virtualenv env

然后,转到 env\Lib\site-packages 文件夹,并在其中创建一个名为 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()如果你没有收到任何令人讨厌的消息,请尝试运行,那么你应该已经准备好了。

希望这可以帮助!

于 2014-07-14T19:52:29.950 回答
3

对于其他人,这对我有用:

在 Mac OSX 上,我使用 Homebrew 安装了 wxpython:

brew install wxpython

切换到您的 virtualenv 站点包目录:

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
于 2014-12-12T02:45:31.940 回答
2

我认为这些步骤不久前对我有用......

虚拟环境中的 wxpython

于 2013-01-03T15:17:04.367 回答
2

wx在 PyPI 上是一个垃圾模块,它有一个微不足道的功能。不幸的是,有人为他们的“第一个 python 模块”获得了这个名字,这让很多人感到困惑恼火。

import你给出的字符串pip install显然是不同的,例如import PILand pip install pillow,或者几乎每个 Django 插件。在这里,你想要pip install wxpython

在 Ubuntu 上安装 wxPython 可能会有点痛苦,所以我建议使用apt-get install python-wxgtk2.8then(如果你的 venv 有--no-site-packages)将全局库文件夹符号链接到 virtualenv 的文件夹中来安装它:

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/
于 2013-10-02T19:55:18.713 回答
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()

如果出现一个窗口并且没有发生错误,那么你一切都很好:)

于 2015-01-29T01:05:54.640 回答