• 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就可以解决了。

  • 相关阅读:
    2020年封装APP之详解
    Linux 强制卸载硬盘 (Device is busy)
    pacman 非交互状态使用
    Snakemake 修改默认工作目录
    LaTeX 表格排版中遇到 Misplaced oalign
    重启崩溃的 KDE
    python robot.libraries.BuiltIn import BuiltIn库
    logging 常用配置
    paramiko 获取远程服务器文件
    物理时间使用Python脚本转格林卫时间
  • 原文地址:https://www.cnblogs.com/zhuxiaoxi/p/9935875.html
Copyright © 2020-2023  润新知