zoukankan      html  css  js  c++  java
  • macOS在virtualenv中使用wxPython报错

    在虚拟的Python环境中运行GUI的软件报错

    This program needs access to the screen. Please run with a
    Framework build of python, and only when you are logged in
    on the main display of your Mac.
    

    这个问题其实我认为是virtualenv的bug,但好像设计就是这个样子。

    所以只能hacker一下了

    以下内容来自于StackOverflow,根据自身情况有所修过

    #!/usr/bin/env zsh
    #move it into virtualenv/bin
    ENV=`python -c "import sys; print(sys.prefix)"`
    PYTHON=`python -c "import sys; print(sys.real_prefix)"`/bin/python3
    export PYTHONHOME=$ENV
    exec $PYTHON "$@"
    

    具体表达一下这段代码但意思吧。先把他保存成脚本放在virtualenv的bin目录下面。一定要在进入virtualenv后运行脚本,hacker才可以正常生效。
    首先获取当前Python的位置,一般是工作目录的virtualenv下面。
    再获取这个Python的真实文件位置,用真实的文件去跑程序。
    这里有个疑问就是,那我的pip环境怎么办?
    其实是这样的,倒数第二行,PYTHONHOME变量就是控制这个的,这也就是为什么需要获取那个虚拟的Python位置的原因。
    最后一行就是执行。

    我的工作目录是sub2,里面有个ENV目录这里是保存虚拟环境的。我将上面的脚本保存成runGUI,存在sub2/ENV/bin/runGUI,以后我只要进入Python虚拟环境然后runGUI xxx.py而不是python xxx.py就可以解决了。

  • 相关阅读:
    工作中问题的总结1
    linux问题故障
    时间转换
    Tips
    总结
    方向
    同步&异步-阻塞&非阻塞
    IO 之 mark()、reset()
    GC日志分析
    JDK 部分工具使用方法
  • 原文地址:https://www.cnblogs.com/zhuxiaoxi/p/9935875.html
Copyright © 2011-2022 走看看