Python脚本显示不同的pythonpath

时间:2012-10-21 15:59:56

标签: python path wxpython pythonpath

尝试运行runsnake会给出

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

2 个答案:

答案 0 :(得分:1)

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

对于OSX上的python的框架构建,please see this question

答案 1 :(得分:0)

尝试在virtualenv之外运行runsnake。

详情请见http://wiki.wxpython.org/wxPythonVirtualenvOnMac