2012-10-21 80 views
3

尝试运行runsnakePython脚本显示了不同PYTHONPATH

ImportError: No module named wx 

打开一个IPython的或Python会话似乎很好地工作:

>>> import wx 
>>> import sys 
>>> print [p for p in sys.path if 'wx' in p]  
['/usr/local/lib/wxPython-2.9.4.0/lib/python2.7/site-packages', '/usr/local/lib/wxPython-2.9.4.0/lib/python2.7/site-packages/wx-2.9.4-osx_cocoa', '/usr/local/lib/wxPython-2.9.4.0/lib/python2.7/site-packages/wx-2.9.1-osx_cocoa/tools'] 

如不把代码中的脚本并调用python script.py。但是,在runsnake.py开头输入该代码将打印一个空列表(打印整个sys.path会打印一条与我的$ PYTHONPATH完全不同的路径)。

为什么它会不同,以及如何让它识别wxPython?

编辑:pip freeze输出包含

SquareMap==1.0.1 
RunSnakeRun==2.0.2b1 
wxPython==2.9.4.0 
wxPython-common==2.9.4.0 
+0

能_how_安装runsnake你请详细说明? – dnozay

+0

'pip install RunSnakeRun' – beardc

+0

你的意思是'pip freeze'显示'RunSnakeRun'和'wxPython == 2.9.4.0'和'wxPython-common == 2.9.4.0'吗? – dnozay

回答

1
  • 你运行runsnake.py并在同一virtualenv Python解释?如果没有,你将不会有相同的包。
  • 如果您在使用--no-site-packages构建的虚拟环境中运行runsnake.py,则无法访问系统范围的程序包。正在运行pip freeze会告诉您是否有权访问wxPython。如果你不那么这就是问题所在。您可以正确创建一个新的virtualenv
  • 您在运行virtualenv命令之前还是之后安装了wxPython?
  • 检查家当,看它是否正在运行相同的蟒蛇#!/usr/bin/python#!/usr/bin/env python
  • 你也可以尝试强行与python runsnake.py

使用哪种解释有关OSX,please see this question蟒蛇的框架构建。

+0

我没有在virtualenv中运行它,但'pip freeze'的输出包含'wxPython == 2.9.4.0; wxPython-common == 2.9.4.0' – beardc

+0

我已经使用了你的最后一个建议,尽管它非常繁琐:'/usr/bin/pythonw2.7 /usr/local/Cellar/python/2.7.3/lib/python2。7/site-packages/runsnakerun/runsnake.py '。我以为我可以把'#!/usr/bin/pythonw2.7'在第一行以获得它的工作,但显然不是。无论如何,谢谢! – beardc