Python中在anaconda环境下使用uwsgi时出现Python版本错误如何解决

服务器上用 anaconda 装的 python,python 也提示 3.6.4 使用 sudo pip install uwsgi 运行 uwsgi 的时候发现 log 里面用的是 python2.7

请问这里应该咋设置?

现在 request 的时候报错

log 里面--- no python application found, check your startup logs for errors ---


Python中在anaconda环境下使用uwsgi时出现Python版本错误如何解决

5 回复

把 anaconda 设成主 Python


在Anaconda环境下用uwsgi报Python版本错,通常是环境路径没配好。uwsgi编译时绑定了系统Python,但你想用conda环境的Python。

核心解决思路:让uwsgi使用你conda环境里的Python解释器和库。

具体操作

  1. 先激活你的conda环境

    conda activate your_env_name
    
  2. 关键步骤:重新编译安装uwsgi,让它绑定当前conda环境的Python:

    # 先卸载已有的uwsgi(如果已安装)
    pip uninstall uwsgi -y
    
    # 安装开发工具(如果需要)
    # conda install -c anaconda gcc  # 如果缺编译工具
    
    # 重要:设置环境变量,指向conda环境的Python
    export PYTHON=/path/to/your/conda/env/bin/python
    export PYTHON_CONFIG=/path/to/your/conda/env/bin/python-config
    export PYTHON_INCLUDE=/path/to/your/conda/env/include/pythonX.Xm  # X.X是你的Python版本
    export PYTHON_LIBS=/path/to/your/conda/env/lib
    
    # 用pip安装(会自动编译)
    pip install uwsgi
    

    更简单的方法(推荐):

    # 直接指定python路径安装
    /path/to/your/conda/env/bin/python -m pip install uwsgi
    
  3. 验证安装

    # 检查uwsgi使用的Python路径
    /path/to/your/conda/env/bin/uwsgi --python-version
    
    # 或者直接运行测试
    /path/to/your/conda/env/bin/uwsgi --http :9090 --wsgi-file test.py
    

如果还不行,在uwsgi配置文件中显式指定Python路径:

[uwsgi]
# 直接指定conda环境的Python解释器
pythonpath = /path/to/your/conda/env/bin/python
home = /path/to/your/conda/env
plugins = python

一句话建议:在conda环境里重装uwsgi,让它绑定当前环境的Python。


现在直接 python 的时候就是 anaconda 的,pip 也是 anaconda 的不过用 anaconda 的 pip 装不上,提示 lto1: fatal error: bytecode stream generated with LTO version 6.0 instead of the expected 4.1

用 conda install 试试

sudo 和你当前用户的环境变量是不一样的啊…

解决方案:两种方法,如果 uwsgi (没用过) 不需要管理员权限去安装得到的一些权限的话,直接 pip install uwsgi; 或者 sudo /{ANACONDA_PATH}/bin/pip install uwsgi

建议:1. 顺便既然用了 anaconda,就多用 conda 来装东西: install -c conda-forge uwsgi 2. 多了解一下 linux… 至少环境变量这种基础是应该明白的

回到顶部