使用 pyenv 运行 mod_wsgi

2023-12-20

我正在尝试在 Apache 服务器上运行 python Web 应用程序。我已经安装了 mod_wsgi:sudo apt-get install libapache2-mod-wsgi.

这是我的站点配置文件:

<virtualhost *:80>
    ServerName 192.168.60.144

    WSGIDaemonProcess myapp.dev processes=1 threads=1 python-home="/home/user/.pyenv/versions/3.6.1" python-path="/home/user/API" home='/home/user/API'
    WSGIProcessGroup myapp.dev
    WSGIScriptAlias /  /home/user/API/config_files/myservice.wsgi.py

    <Directory /home/user/API>
        Order allow,deny
        Allow from all
    </Directory>

    DocumentRoot /home/user/API/myservice/testdir
    <Directory />
         AllowOverride None
          Require all granted
     </Directory>

</virtualhost>

但是,当尝试访问网络应用程序时,我收到“内部服务器错误”。这是日志中的错误:

[Mon Mar 12 13:34:04.054636 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi (pid=6762): 目标 WSGI 脚本'/home/user/API/config_files /myservice.wsgi.py' 无法作为 Python 模块加载。 [Mon Mar 12 13:34:04.054665 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] mod_wsgi (pid=6762): 处理 WSGI 脚本'/home/user/API 时发生异常/config_files/myservice.wsgi.py'。 [Mon Mar 12 13:34:04.054693 2018] [wsgi:error] [pid 6762:tid 139768980616960] [remote 10.10.30.13:34438] 回溯(最近一次调用): [2018 年 3 月 12 日星期一 13:34:04.054717 2018] [wsgi:error] [pid 6762:tid 139768980616960] [远程 10.10.30.13:34438] 文件“/home/user/API/config_files/myservice.wsgi.py”,行6、在 [2018 年 3 月 12 日星期一 13:34:04.054752] [wsgi:error] [pid 6762:tid 139768980616960] [远程 10.10.30.13:34438] from pathlib import Path [2018 年 3 月 12 日星期一 13:34:04.054775] [wsgi:error] [pid 6762:tid 139768980616960] [远程 10.10.30.13:34438] ImportError:没有名为 pathlib 的模块

我检查了 pyenv python 安装,它安装了 pathlib 模块。这意味着可能使用的 Python 版本不正确。如何检查正在使用哪个 Python 版本?我是否设置了python-home属性错误?


您不能在 pyenv 环境中使用 mod_wsgi 的系统打包版本。需要针对正在使用的特定 Python 安装/版本来编译 mod_wsgi。使用 pyenv 时,它是一个单独的 Python 安装,而不是正在使用的系统 Python。您应该使用pip install安装由 pyenv 创建的为 Python 安装编译的 mod_wsgi 的方法。请确保当您使用 pyenv 安装 Python 时启用了共享库。

  • https://github.com/pyenv/pyenv/issues/392 https://github.com/pyenv/pyenv/issues/392

IOW,卸载系统打包版的mod_wsgi然后使用pip install安装 mod_wsgi 并配置 Apache 以使用它的方法。看:

  • https://pypi.python.org/pypi/mod_wsgi https://pypi.python.org/pypi/mod_wsgi

特别是,请参阅Connecting into Apache installation有关如何将 pip 安装的 mod_wsgi 加载到 Apache 的部分。即修改路径/etc/apache2/mods-available/wsgi.load指向mod_wsgi-<version>.so虚拟环境中的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pyenv 运行 mod_wsgi 的相关文章

随机推荐

  • 使用 ("" + ) 转换为字符串是不好的做法吗?

    在Java中转换为String是使用
  • 在 Ruby 中比较两个包含字谜字符串的数组

    如果我的代码已关闭 请原谅我 我仍然对 Ruby on Rails 很感兴趣 随着我了解更多 只是 Ruby 似乎存在一些细微的差异 尽管公平地说 我不确定我的代码是否能通过 Ruby on Rails 格式的测试 我离题了 我正在尝试比较
  • AngulareJS e2e 检查列表中的每个链接

    我是 AngularJS 的新手 我将主要使用 e2e 部分 使用 jasmine 经过几天的无果而终 至少可以说 我发现文档相当厌食 我想知道是否有人可以在这里帮助我 网站生成 a href 链接的 html 列表 我可以使用 angul
  • kotlin 数据类 + bean 验证 jsr 303

    我正在尝试让 Kotlin 在 spring data rest 项目上使用 jsr 303 验证 给出以下数据类声明 Entity data class User Id GeneratedValue strategy javax pers
  • 如何在Android中正确使用Parcelable类

    我有一个类 如下 我想通过意图发送到服务类 我已经实现了 Parcelable 接口 但不确定如何实际发送和检索整个对象 包括对象的当前状态 尤其 Override public void writeToParcel Parcel dest
  • JPA:TypedQuery 有时返回 null 而不是 NoResultException

    通常我使用 NoResultException 返回一个 空 对象 例如如果我没有从 TypedQuery 中得到结果 则返回一个空错误列表或 new BigInteger 0 现在事实证明 这有时行不通 突然 getSingleResul
  • 使用 JBoss 将消息发布到远程 JMS 队列

    这看起来很简单 但我找不到简单的答案 我想打开到远程 JMS 代理的连接 IP 和端口已知 打开到特定队列 名称已知 的会话并向该队列发布消息 是否有任何简单的 Java API 如果可能的话 标准 可以做到这一点 EDIT 好吧 我现在明
  • 环境变量文件的命名约定?

    我只是想知道是否有任何标准化约定 env环境变量文件 如果我有多个设置 例如development staging production 它们的标题应该是什么 我见过 env development development env sett
  • 快速第 n 个孩子问题

    我有一个快 nth child我正在努力解决的问题 我的目标是形成一个列表的 4 个项目分组中的每第 3 个和第 4 个项目 例如 div class normal Item 1 div div class normal Item 2 di
  • 并行执行 DocumentDb 存储过程

    documentDb 存储过程可以并行运行并更新同一对象吗 documentDb 会按顺序处理它们吗 考虑以下场景 我有一个应用程序 当我的用户完成任务时 我可以赠送 10000 个硬币 我有以下对象 remainingPoints 100
  • swift 3 结合使用语音识别和 AVFoundation

    我成功地能够使用 Speech 语音识别 并且可以使用 AVFoundation 在 Xcode 8 IOS 10 中播放 wav 文件 我只是不能同时使用它们 我有工作语音识别代码 可以在其中导入语音 当我将 AVFoundation 导
  • XmlSerializer System.InvalidOperationException

    我的应用程序中有以下代码 Serializable public class Class private string name private List
  • 使用python从youtube抓取视频信息

    我想使用 python 提取某个 Youtube 视频的视频信息 如标题 观看者数量 就像我在其他网站上进行网页抓取一样 但由于某种原因 它要么不返回任何内容 要么只为侧面推荐的视频而不是 URL 的 主视频 提供标签 我尝试了与在其他网站
  • Git fork 版本礼仪 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当我在 GitHub 上分叉别人的项目 更新文件并更新我自己的分叉时 如何对我的分叉进行版本控制 例如 原始项目是版本1 2 3 我添加了一个小
  • 如何使用 pytest 来断言不引发警告

    我想确保完全没有警告在一项断言中提出 找不到任何明确的答案关于警告的 pytest 文档 https docs pytest org en 3 2 1 warnings html assertwarnings 死链接 3 2 文档不再可用
  • Xlib:以最小化或最大化状态创建窗口

    是否可以使用 Xlib 创建最大化或最小化状态的窗口 如果是这样 我将如何去做呢 像这样的东西 XEvent xev Atom wm state XInternAtom dpy NET WM STATE False Atom max hor
  • 存储库设计模式 - 每个 Dao 都应该有一个存储库吗?

    我的应用程序中有一些 DAO 它们访问数据库以进行 CRUD 操作 比如说新闻 天气和体育 DAO 所以我对需要多少个存储库感到困惑 我应该只使用一个存储库 例如 DataRepository 并让我保存我的数据库和所有 dao 并在其中封
  • 如何从一侧禁用抽屉布局?

    我做了一个双抽屉布局没有操作栏像这样的东西 使用没有 TitleBar 或 ActionBar 的导航抽屉 https stackoverflow com questions 17735621 using navigation drawer
  • 在linux内核模块中运行无限循环

    我制作了一个模块 我想在其中运行无限循环 直到不卸载该模块为止 目前 如果我执行 rmmod 它会通知我模块仍然繁忙 并且在一段时间后内核出现恐慌 while 1 有什么技巧可以让我运行无限循环直到卸载模块 这个循环在什么上下文中运行 这是
  • 使用 pyenv 运行 mod_wsgi

    我正在尝试在 Apache 服务器上运行 python Web 应用程序 我已经安装了 mod wsgi sudo apt get install libapache2 mod wsgi 这是我的站点配置文件